Eu sei que é um pouco grande, mas tá facil de entender porque é só codigo.
Façam-me um favor, e digam-me o k ta a falhar, eu queria numa textbox escrever uma letra e o programa faz com que apareca a primeira palavra que comece por essa letra na textbox e quando carrego para baixo, lista-me todas as palavras que comecem por aquela letra
Eu fui buscar um programa a este site nos projectos, mas nao usa "ADO",e tentei alterar e não aparece nada, mas tb nao da erros.
Private Sub List1_Click()
txtNome.Text = List1.Text
End Sub
Private Sub List1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Then 'Esc
txtNome.SetFocus
ElseIf KeyCode = 13 Then
txtNome.Text = List1.Text
txtNome.SetFocus
End If
End Sub
Private Sub txtNome_Change()
Dim Pos As Integer
Dim Tabela As String
Label3.Caption = "OK"
If txtNome.SelStart = 0 Then Exit Sub
On Error Resume Next
'Set Tabela = BD.OpenRecordset("SELECT TOP 1 Author FROM Authors WHERE Author Like '" & Mid(textNome.Text, 1, textNome.SelStart) & "*' ORDER BY Author Asc")
Label3.Caption = "OK1"
Tabela = "SELECT Expedidor FROM Clientes "
Pos = txtNome.SelStart
'textNome.Text = Tabela("Author")
txtNome.Text = adoClientes.Recordset!Expedidor
txtNome.SelStart = Pos
txtNome.SelLength = Len(txtNome)
Label3.Caption = "OK2"
End Sub
Private Sub txtNome_GotFocus()
Label3.Caption = "OK3"
Dim Tabela As String
txtNome.SelStart = 0
txtNome.SelLength = Len(txtNome)
List1.Visible = False
End Sub
Private Sub txtNome_KeyDown(KeyCode As Integer, Shift As Integer)
Dim Tabela As String
On Error Resume Next
If KeyCode = 8 Then 'Backspace
txtNome.SelStart = txtNome.SelStart - 1
txtNome.SelLength = Len(txtNome)
ElseIf KeyCode = 27 Then 'Esc
txtNome.Text = Empty
ElseIf KeyCode = 40 Then 'Seta para Baixo
If List1.Visible = True Then
List1.Text = txtNome.Text
List1.Visible = False
Else
'Set Tabela = BD.OpenRecordset("SELECT Author FROM Authors WHERE Author Like '" & Mid(textNome.Text, 1, textNome.SelStart) & "*' ORDER BY Author Asc")
Tabela = "SELECT Expedidor FROM Clientes where Expedidor Like '" & Mid(txtNome.Text, 1, txtNome.SelStart) & "*' ORDER BY Expedidor Asc"
List1.Clear
Do Until adoClientes.Recordset.EOF 'Tabela.EOF
DoEvents
List1.AddItem adoClientes.Recordset!Expedidor 'Tabela("Author")
adoClientes.Recordset.MoveNext 'Tabela.MoveNext
Loop
If adoClientes.Recordset.RecordCount > 8 Then List1.Height = 225 * 8 Else List1.Height = 225 * adoClientes.Recordset.RecordCount
List1.Visible = True
List1.Text = txtNome.Text
List1.SetFocus
End If
End If
End Sub