Cargar Listbox Sin Duplicados, y al darle click a los registros que me muestre el resultado de otra columna en otro Listbox

Cargar Listbox Sin Duplicados de los registros de una columna, y al darle click a los registros que me muestre el resultado de otra columna relacionada a esta en otro Listbox

Cargar Listbox Sin Duplicados de los registros de una columna, y al darle click a los registros que me muestre el resultado de otra columna relacionada a esta en otro Listbox

2 respuestas

Respuesta

Por si te sirve de ayuda. Tengo una tabla Clientes con una serie de ellos y sus países. En un formulario Tengo un cuadro de lista con los países y otro cuadro de lista

Si, por ejemplo, selecciono España

Si selecciono Francia

En este caso, el código del evento Después de actualizar del cuadro de lista Lista1 es

Private Sub Lista1_AfterUpdate()
Lista3.RowSource = "select cliente from clientes where pais='" & Me.Lista1 & "'"
End Sub

En caso de que quisieras que sólo te apareciera un cliente en el cuadro de lista Lista3, podrías usar algo como

Private Sub Lista1_AfterUpdate()
Lista3.RowSourceType = "lista de valores"
Lista3.RowSource = DLookup("cliente", "clientes", "pais='" & Me.Lista1 & "'")
End Sub

Respuesta

Esto requiere de más conocimientos y código VBA. Le dejo este ejemplo, consta de un formulario y 2 cuadros de lista. Al cargar utilizo los meses del año para no improvisar con tablas.

Ahora hago clic en los meses de julio y octubre

Ahora hago clic en los meses enero y abril.

CODIGO DEL EVENTO AL ABRIR DEL FORMULARIO

Private Sub Form_Open(Cancel As Integer)
 Dim i As Integer
 For i = 1 To 12 Step 1
    List1.AddItem MonthName(i)
 Next i
End Sub

CODIGO DEL EVENTO AL HACER CLIC EN EL CUADRO DE LISTA 1

Private Sub List1_Click()
       Dim i As Integer, c As Integer
     Me.List2.RowSource = ""
    'Estas lineas si llama el procedimiento desde un botón
     If List1.ListCount = 0 Then
        MsgBox "No hay items seleccionados."
        Exit Sub
    End If
    c = 0
    For i = 0 To List1.ListCount - 1 Step 1
        If List1.Selected(i) = True Then
            c = 1
            Exit For
        End If
    Next i
    If c = 0 Then
        MsgBox "Seleccione algún item de la lista." 'Esta línea si llama el procedimiento desde un botón
        List1.SetFocus
        Exit Sub
    ElseIf c = 1 Then
        For i = 0 To List1.ListCount - 1 Step 1
            If List1.Selected(i) = True Then
                List2.AddItem List1.ItemData(i)
            End If
        Next i
    End If
End Sub

Creo que su pregunta es de Execel, en este caso debe adaptar el código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas