Noticias:

Reinstalando todo...

Menú Principal

Obtener lista de controles seleccionados

Iniciado por xavi, Octubre 19, 2021, 01:06:16 PM

Tema anterior - Siguiente tema

xavi

Palabras clave: diseño, controles, selección, lista
Autor: Visto a ADezii en BYTES.COM

Objetivo:
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.

Respuesta
Una 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