Aunto completar combobox

Aif

Power Member
Boas,

Amigos estou com um problema, tenho uma BD access onde tem o campo nome e que que a combobox faça o auto completar do campo nome, onde por sua vez me vai aprentar numa texbox nao sei se expliquei bem.

Resumindo era fazer search(sem botao) atraves da combobox onde esta procuraria na BD no campo Nome.

desde ja

Obrigado a todos
 
Ja tenho tudo feito eu já consegui fazer a uma textbox mas empamquei na combobox, consigo que eu ao digitar me va aparecendo o texto na "txtnome" mas nao faz "dropdown" para ver os varios registo que tem com o inicio da letra digitada
 
sim estou a digitar na combobox eu ja tenho este codigo

Private Sub combo1_DropDown()

Data1.Recordset.FindFirst "NOME Like '*" & Combo1.Text & "*'"

End Sub


assim ele procura no nome, mas falta alguma coisa
 
sim estou a digitar na combobox eu ja tenho este codigo

Private Sub combo1_DropDown()

Data1.Recordset.FindFirst "NOME Like '*" & Combo1.Text & "*'"

End Sub


assim ele procura no nome, mas falta alguma coisa

se puseres a fazer isso numa combo box acho que te ira dar erro, eu tentei fazer no meu programa tive que por esse código numa text box em baixo, e ela ao ser preenchida é que iria fazer a procura..
 
Pois, mas tambem funciona na combobox nao nao me faz dropdown e nao me mostra os itens que começam pela letra digitada.
 
Não é o Vb6, agr consegui 50% troquei a combox por uma dbcombobox é só fazer os links ao campo e ta feito só falta mesmo o autocomplete.
 
Olá desculpa o atraso mas aqui vai. Vês estes dois exemplos em vb6:

http://www.freevbcode.com/ShowCode.Asp?ID=2266
http://www.freevbcode.com/ShowCode.Asp?ID=1084

ou qq coisa do género:

Código:
Sub [B]AutoComplete[/B](cbCombo As [B]ComboBox[/B], strKeyHit As String)
  
     If KeyAscii = 13 Then
       cbCombo.AddItem cbCombo.Text
       KeyAscii = 0
       Exit Sub
   End If
   Dim lngFind As Long, intPos As Integer, intLength As Integer

   With cbCombo
       If KeyAscii = 8 Then
           If .SelStart = 0 Then Exit Sub
           .SelStart = .SelStart - 1
           .SelLength = 32000
           .SelText = ""
       Else
           .SelText = chr(KeyAscii)
       End If
       KeyAscii = 0
       lngFind = SendMessage(.hWnd, CB_FINDSTRING, 0, ByVal .Text)
       If lngFind = -1 Then Exit Sub
       intPos = .SelStart
       intLength = Len(.List(lngFind)) - Len(.Text)
       .SelText = .SelText & Right(.List(lngFind), intLength)
       .SelStart = intPos
       .SelLength = intLength
   End With
End Sub
Depois utilizas assim no keypress event:
Código:
[B]AutoComplete[/B] <Nome Da Combobox>, KeyAscii
Depois diz se ajudou!

Opps! Falta as declarações:

Public Const CB_FINDSTRING = &H14C

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
 
Última edição pelo moderador:
Back
Topo