Palabras clave:
diseño, controles, selección, listaAutor:
Visto a ADezii en BYTES.COMObjetivo: Mihura pregunta si es posible obtener la lista de controles seleccionados en un formulario en vista diseño. ¿El motivo? la vagancia de escribir los nombres de los controles.
RespuestaUna búsqueda en Google nos posiciona a Chema y un servidor en la misma página. Ahí descubrimos la propiedad InSelection y un código para determinar si está seleccionado.
? IsControlSelected (Forms!Customers, "CompanyName")
Function IsControlSelected(frm As Form, strControlName As String) As Boolean
Dim intI As Integer, ctl As Control
If frm.CurrentView <> 0 Then
' Form is not in Design view.
Exit Function
Else
For intI = 0 To frm.Count - 1
Set ctl = frm(intI)
If ctl.InSelection = True Then
' Is desired control selected?
If UCase(ctl.Name) = UCase(strControlName) Then
IsControlSelected = True
Exit Function
End If
Else
IsControlSelected = False
End If
Next intI
End If
End Function
Al final la cosa es más simplificable, tal como nos enseña Mihura.
Function ControlesSeleccionados(frm As Form) As String
Dim strTmp As String
Dim ctl As Control
For Each ctl In frm.Controls
If ctl.InSelection Then
strTmp = strTmp & ", " & Chr(34) & ctl.Name & Chr(34)
End If
Next ctl
ControlesSeleccionados = Trim(Mid(strTmp, 2))
End Function