1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Aunto completar combobox

Discussão em 'Programação' iniciada por Aif, 19 de Abril de 2008. (Respostas: 9; Visualizações: 2394)

  1. Aif

    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
     
  2. jpaulino

    jpaulino Power Member

    E o que é que já está feito ?
     
  3. Aif

    Aif Power Member

    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
     
  4. jpaulino

    jpaulino Power Member

    mas está a digitar na combobox ?
     
  5. Aif

    Aif Power Member

    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
     
  6. Pauleta_Tubarao

    Pauleta_Tubarao Power Member

    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..
     
  7. Aif

    Aif Power Member

    Pois, mas tambem funciona na combobox nao nao me faz dropdown e nao me mostra os itens que começam pela letra digitada.
     
  8. jpaulino

    jpaulino Power Member

    Está a utilizar a versão 2007 não é verdade ? É que eu não tenho essa versão.
     
  9. Aif

    Aif Power Member

    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.
     
  10. jpaulino

    jpaulino Power Member

    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: 21 de Abril de 2008

Partilhar esta Página