Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

coldcase

Combo Box (auto completar)

Recommended Posts

Seguinte, como não estou achando uma solução para o problema da minha busca, quero saber se tem como fazer isso:Um dos campos da minha tabela aparece em uma combo box. Mas ela só muda quando a pessoa passa pra frente ou pra tras o registro pelo Adodc.Tem como a combobox ter a caracteristica auto completar? E assim que o usuario selecionasse o novo nome (selecionado na lista de possiveis nomes) apareceria as informaçoes desse registro sem que necessario passar pra tras ou pra frente o Adodc.[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem jeito sim..é só você bota no evento on_change da combo..para ele fazer uma consulta..Select nome From tabelaWhere nome Like '" & text1.text & "%'acho que isso resolve seu problema.. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um módulo

 

'DECLARAÇÕES GERAIS

#If Win32 Then

Declare Function SendMessage Lib "User32" Alias "SendMessageA" _

(ByVal hWnd As Long, ByVal wMsg As Long, _

ByVal wParam As Long, lParam As Any) As Long

#Else

Declare Function SendMessage Lib "User" _

(ByVal hWnd As Integer, ByVal wMsg As Integer, _

ByVal wParam As Integer, lParam As Any) As Long

#End If

 

'PREENCHIMENTO AUTOMÁTICO DE COMBOBOX

Public Sub InfCbo(cbo As Object, KeyAscii As Integer)

Dim CB As Long

Dim Encontrar As String

Const CB_Err = (-1)

Const CB_Encontrar = &H14C

 

If KeyAscii < 32 Or KeyAscii > 127 Then Exit Sub

If cbo.SelLength = 0 Then

Encontrar = cbo.Text & Chr$(KeyAscii)

Else

Encontrar = Left$(cbo.Text, cbo.SelStart) & Chr$(KeyAscii)

End If

 

CB = SendMessage(cbo.hWnd, CB_Encontrar, -1, ByVal Encontrar)

If CB <> CB_Err Then

cbo.ListIndex = CB

cbo.SelStart = Len(Encontrar)

cbo.SelLength = Len(cbo.Text) - cbo.SelStart

End If

KeyAscii = 0

End Sub

 

Agora é só colocar no evento KeyPress do Combobox:

 

Exemplo

Private Sub Combo1_KeyPress(KeyAscii As Integer)

InfCbo Combo1, Keyascii

End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz como você falou screech, mas a combo continua dando informaçoes normalmente, só muda pra outro registro pelo ADODC e não me deixa inserir nenhum caracter na combox.. só apagar.sabe oq pode ser??

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.