Ciao Khris22,
guarda che la ListBox non è adatta al lavoro che vuoi svolgere, anche il DataEnvironment è molto limitativo; a mio avviso dovresti usare una ListView e per il DB usare ADO.
Ti posto un esempio d'utilizzo della LV, nel predetto contesto:
codice:
Option Explicit

' Carica la ListView per lettera iniziale della Via:
Sub Ricerca()
    
    ' sLetteraRic è una variabile str caricata con la lettera iniziale
    ' della via (non importa se maiuscola o minuscola):
    If Len(sLetteraRic) > 0 Then
        ' Imposta Mouse Clessidra:
            Screen.MousePointer = 11
            DoEvents
        
        ' Formatta ListView per visualizzare i dati :
        FrmArch.LVArchivio.ListItems.Clear
        
        Dim OggSR As New ADODB.Command
        Dim ConSR As New ADODB.Connection
        Dim RSTrc As New ADODB.Recordset
        
        Dim itmX As ListItem
    
    'Esegue la connessione con il DataBase:
        With ConSR
            .ConnectionString = DataConnessione
            .CursorLocation = adUseClient   'tipo di cursore
            .Mode = adModeShareDenyNone     'nessuna limitazione
            .CommandTimeout = 15
            .Open
       End With
       
        OggSR.ActiveConnection = ConSR
        OggSR.CommandType = adCmdText
        
        RSTrc.Source = "SELECT Via, NomeVia, Ncivico, Cap, Citta, Provincia FROM TblAnagImmob WHERE NomeVia Like '" & sLetteraRic & "%' Order by NomeVia "
        RSTrc.Open , ConSR, adOpenDynamic, adLockOptimistic
        
        ' Controlla che il DB contenga i dati da visualizzare:
        If RSTrc.EOF = False And RSTrc.BOF = False Then
            Do Until RSTrc.EOF
                Set itmX = LVArchivio.ListItems.Add()
                With RSTrc
                    itmX.Text = .Fields("Via")
                    itmX.SubItems(1) = .Fields("Via")
                    itmX.SubItems(2) = .Fields("NomeVia")
                    itmX.SubItems(3) = .Fields("Ncivico")
                    itmX.SubItems(4) = .Fields("Cap")
                    itmX.SubItems(5) = .Fields("Citta")
                    itmX.SubItems(6) = .Fields("Provincia")
                    RSTrc.MoveNext
                End With
            Loop
            ' Se i records sono stati caricati vengono visualizzati
            ' nella LV altrimenti appare il messaggio:
            ElseIf RSTrc.EOF = True And RSTrc.BOF = True Then
                LVArchivio.ListItems.Add.Text = "Ricerca completata, nessun record trovato ..."
                LVArchivio.ToolTipText = "Ricerca completata, nessun record trovato ..."
        End If

' Imposta Mouse Default:
    Screen.MousePointer = 0

    'Chiude e cancella il recordSet:
        RSTrc.Close
        Set RSTrc = Nothing
    'Chiude la connessione:
        ConSR.Close
        Set ConSR = Nothing
End Sub