Pra fazer isso eu uso um Listbox , a cada vez que a pessoa digita um nome no campo nome, o listbox vai filtrando ate achar o nome no banco. se quiser mando rpa vc um demo
tipo no general
Dim DelBack As Boolean, ListClick As Boolean
Private Sub List1_Click()
'On Error Resume Next
Dim c As Long
Dim rcText As RECT
Dim newWidth As Long
Dim itemWidth As Long
Dim sysScrollWidth As Long
ListClick = True
txtproprietario.Text = List1.List(List1.ListIndex)
txtproprietario.SetFocus
End Sub
Dim rs As Recordset
Dim cnBd As String
Dim i As Integer
On Error GoTo erro
If ListClick Then
ListClick = False
Exit Sub
End If
i = txtproprietario.SelStart
cnBd = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "Bdimobiliaria.MDB;Jet " & _
"OLEDB:Database Password=123456;"
Set rs = New Recordset
rs.Open "SELECT Nome FROM Tbl_Proprietarios WHERE Nome LIKE '" & txtproprietario.Text & "%' ORDER BY Nome asc", cnBd
If txtproprietario.Text <> "" And Not DelBack Then txtproprietario.Text = rs![nome]
List1.Visible = True
List1.Clear
While Not rs.EOF
List1.AddItem rs![nome]
rs.MoveNext
Wend
rs.Close
txtproprietario.SelStart = i
txtproprietario.SelLength = Len(txtproprietario.Text)
Exit Sub
erro:
Select Case err.Number
Case 3021
List1.Clear
List1.Visible = False
Case Else
MsgBox err.Number & " - " & err.Description, vbExclamation
Resume Next
End Select