Boa Tarde a todos..
Uso o código abaixo para filtrar ao digitar na combo, Ele filtra conforme eu preciso.
O que preciso é ao abrir a combo eu consiga selecionar oque foi filtrado com as setas para cima ou para baixo, ele só permite com o mouse.
Como sempre conto com a ajuda dos Amigos
Dim strText, strFind, strFind2
' strText-Retorna o valor da Combo
' strFind-Retorna o valor do conjunto já digitado
' strFind2-Junta a clausula WHERE ao valor do conjunto já digitado
strText = Me.ComboCliente.Text
If Len(Trim(strText)) > 0 Then
' Mostra a lista com os registro que contenham o conjunto já digitado
' Cria uma expressão de consulta SQL com string para clausula WHERE do SQL que retorna os dados da tabela
strFind2 = "txtNomeCliente Like '*"
For I = 1 To Len(Trim(strText))
If (Right(strFind, 1) = "*") Then
strFind = Left(strFind, Len(strFind) - 1)
End If
strFind = strFind & Mid(strText, I, 1) & "*"
Next
strFind2 = strFind2 & strFind & "'"
strsql = "SELECT CodCliente, txtNomeCliente FROM tblClientes where " & strFind2 & " ORDER BY txtNomeCliente;"
' Filter os registros da combo list utilizando a nova consulta sql
Me.ComboCliente.RowSource = strsql
Else
' Senão, mostra a lista com todos os registros
strsql = "SELECT CodCliente, txtNomeCliente FROM tblClientes ORDER BY txtNomeCliente; "
Me.ComboCliente.RowSource = strsql
End If
' Abre a lista do combobox para mostrar os registros filtrados
Me.ComboCliente.Dropdown
End Sub
Abraços
Uso o código abaixo para filtrar ao digitar na combo, Ele filtra conforme eu preciso.
O que preciso é ao abrir a combo eu consiga selecionar oque foi filtrado com as setas para cima ou para baixo, ele só permite com o mouse.
Como sempre conto com a ajuda dos Amigos
Dim strText, strFind, strFind2
' strText-Retorna o valor da Combo
' strFind-Retorna o valor do conjunto já digitado
' strFind2-Junta a clausula WHERE ao valor do conjunto já digitado
strText = Me.ComboCliente.Text
If Len(Trim(strText)) > 0 Then
' Mostra a lista com os registro que contenham o conjunto já digitado
' Cria uma expressão de consulta SQL com string para clausula WHERE do SQL que retorna os dados da tabela
strFind2 = "txtNomeCliente Like '*"
For I = 1 To Len(Trim(strText))
If (Right(strFind, 1) = "*") Then
strFind = Left(strFind, Len(strFind) - 1)
End If
strFind = strFind & Mid(strText, I, 1) & "*"
Next
strFind2 = strFind2 & strFind & "'"
strsql = "SELECT CodCliente, txtNomeCliente FROM tblClientes where " & strFind2 & " ORDER BY txtNomeCliente;"
' Filter os registros da combo list utilizando a nova consulta sql
Me.ComboCliente.RowSource = strsql
Else
' Senão, mostra a lista com todos os registros
strsql = "SELECT CodCliente, txtNomeCliente FROM tblClientes ORDER BY txtNomeCliente; "
Me.ComboCliente.RowSource = strsql
End If
' Abre a lista do combobox para mostrar os registros filtrados
Me.ComboCliente.Dropdown
End Sub
Abraços
- Anexos
- CaixaDeCombinação.zip
- Você não tem permissão para fazer download dos arquivos anexados.
- (66 Kb) Baixado 24 vez(es)