La ListBox settala con style = '1 - CheckBox', così ottieni in modo
elegante la multiselezione.
La query di selezione la costruisci in questo modo :
codice:
Dim sSQL As String
Dim sWhere As String
Dim a As Integer

sSQL = "Select * from Tabella where"
sWhere = ""
For a = 0 To List1.ListCount - 1

    If List1.Selected(a) = True Then
        If IsEmpty(sWhere) Then
            sWhere = " Cognome = '" & List1.List(a) & "'"
        Else
            sWhere = " AND Cognome = '" & List1.List(a) & "'"
        End If
    End If
Next a
sSQL = sSQL & sWhere
'
' In questo punto hai la stringa sSQL composta dinamicamente.
'
Ricorda solo che per gestire gli apostrofi presenti spesso nei
cognomi tipo D'Amico, Dell'Acqua ecc. ) le istruzioni
codice:
            .....  
            sWhere = " Cognome = '" & List1.List(a) & "'"
            ..... 
            sWhere = " AND Cognome = '" & List1.List(a) & "'"
generano un errore a runtime.
Un metodo efficace a prevenirlo è quello di utilizzare i doppi apici
al posto dei singoli. La strada più immediata è :
codice:
            .....  
            sWhere = " Cognome = " & Chr$(34) & List1.List(a) & Chr$(34)
            ..... 
            sWhere = " AND Cognome = " & Chr$(34) & List1.List(a) &  Chr$(34)
Ciao,