Olá Expedito, boa tarde.
O evento Change do objeto text permite que você controle cada caracter digitado pelo usuario. Basta que voce coloque a instrução para o seu banco de dados dentro deste evento.
Exemplo:
Private Sub Text1_Change()
Dim sSql As String
sSql = "Select Campo From Sua_Tabela Where Campo like '" & Text1.Text & "%'"
Set SeuRecordSet = SeuObjetoConnection.Execute(sSql)
If Not SeuRecordSet.Eof Then Listbox.clear
While Not SeuRecordSet.Eof
Listbox.Add SeuRecordSet!Campo
SeuRecordSet.MoveNext
Wend
SeuRecordSet.Close
End Sub
A cada tecla digitada, será disparado o evento change do Text que enviará a instrução ao seu banco de dados. Cada vez que a instrução retornar linhas, o listbox será refeito de acordo com a instrução enviada.
Você pode transformar estas instruções numa função que será chamada de dentro do evento Change. Isto tornará o seu código mais limpo e fácil de depurar.
PS: O objeto ComboBox, com a propriedade Style setada para "2 - Dropdown List", apresenta o mesmo efeito que você está querendo obter, porém sem exibir a lista enquanto não está sendo clicado, mas reduz a seleção na medida em que vai recebendo a digitação.
Não me ative a declaração dos objetos de conexão e recordset para não tornar a dica extensa e imcompreensível. Qualquer dúvida, é só falar.
Espero ter colaborado,
Abraço.