PESQUISA NUMA COMBOBOX

HELIO13 22/10/2012 15:25:05
#412510
Boa tarde!

Alguém sabe como posso pesquisar numa combobox pelo teclado?

Vou explicar melhor, tenho uma combobox, e por exemplo carrego na tecla [Ô]M[Ô] e ele mostra o primeiro que começa com a letra M...

Alguém sabe como consigo fazer isso?
GANDA.NICK 22/10/2012 15:36:42
#412511
boas,


veja se isto o ajuda


Private Sub Combo1_Change()
Dim i As Integer
For i = 0 To Me.Combo1.ListCount - 1
If Left$(Me.Combo1.List(i), 1) = Me.Combo1.Text Then Me.Combo1.Text = Me.Combo1.List(i)
Next [ô]i
End Sub




se não é isto é algo parecido...

té +
VELDRAME 22/10/2012 16:09:57
#412517
coloque em um modulo o comando:

[txt-color=#0000f0]Public Sub[/txt-color] AutoMatch(cbo As ComboBox, KeyAscii As Integer)
Dim sBuffer As String
Dim lRetVal As Long

sBuffer = Left(cbo.Text, cbo.SelStart) & Chr(KeyAscii)
lRetVal = SendMessage((cbo.hwnd), CB_FINDSTRING, -1, ByVal sBuffer)

If lRetVal <> CB_ERR Then
cbo.ListIndex = lRetVal
cbo.Text = cbo.List(lRetVal)
cbo.SelStart = Len(sBuffer)
cbo.SelLength = Len(cbo.Text)
KeyAscii = 0
End If
[txt-color=#0000f0]End Sub[/txt-color]

Para chamar o comando use:
[txt-color=#0000f0]Private Sub[/txt-color] comboBox_KeyPress(KeyAscii As Integer)
AutoMatch cboProduto, KeyAscii
[txt-color=#0000f0]End Sub[/txt-color]
HELIO13 22/10/2012 16:20:36
#412521
eu estou a utilizar o Access 2010...e estou com um problema

diz que o .Hwnd - Method not found

consegues me ajudar?
VELDRAME 22/10/2012 17:10:43
#412532
Citação:

Public Sub AutoMatch([txt-color=#e80000]cbo As ComboBox[/txt-color], KeyAscii As Integer)
Dim sBuffer As String
Dim lRetVal As Long

sBuffer = Left(cbo.Text, cbo.SelStart) & Chr(KeyAscii)
lRetVal = SendMessage(([txt-color=#e80000]cbo.hwnd[/txt-color]), CB_FINDSTRING, -1, ByVal sBuffer)



Vejá só...
Na primeira linha ele pede o nome do ComboBox.
Na quinta linha ele usa o nome que você informou ([txt-color=#e80000][b] cbo.hwnd[/b[/txt-color]] )

Então informe o nome da ComboBox.
No exemplo que te passei o meu Combo é o cboProduto.

HELIO13 22/10/2012 18:15:03
#412544
Já consegui...obrigado

cumps
Hélio Miranda
VELDRAME 23/10/2012 12:02:21
#412595
Favor fechar o Tópico e pontuar que lhe ajudou, se for o caso.
ADILSOO 23/10/2012 15:19:08
#412621
Amigo, não sei se deu certo, mas o Proprio combobox tem a fucnao de filtrar, agora seria bem interessante voce colocar um autocompletar no combo, eu uso assim e fica show, ele filtra e auto completa com os dados do banco, se quiser posta aii..
JLAUROSOUZA 23/10/2012 16:45:35
#412633
Private Sub combobox1_GotFocus()
SendKeys [Ô]{F4}[Ô]
End Sub

Private Sub combobox1_KeyUp(KeyCode As Integer, Shift As Integer)
On Error GoTo tratar:

If combobox1.Text = [Ô][Ô] Then
Exit Sub
End If
If KeyCode = 8 Then
Exit Sub
End If
Dim i As Integer
Dim xt As Integer
Dim xn As String
Dim xAxou As Integer
xAxou = 0
inicio:
For i = 0 To combobox1.ListCount - 1
xt = Len(combobox1.Text)
If Mid(combobox1.List(i), 1, Len(combobox1.Text)) = combobox1.Text Then
combobox1.Text = combobox1.List(i)
combobox1.SelStart = xt
combobox1.SelLength = Len(combobox1.Text) - xt
xAxou = 1
Exit Sub
End If
Next
If xAxou = 0 Then
xn = Mid(combobox1.Text, 1, Len(combobox1.Text) - 1)
combobox1.Text = xn
GoTo inicio:
End If
Exit Sub
tratar:
combobox1.Text = [Ô][Ô]

End Sub

Observe que no Função [Ô]combobox1_GotFocus()[Ô] ele Abrirá o Combo Para visualização em tempo de execução.
e na função [Ô]combobox1_KeyUp[Ô] ele Auto-Completa indicando se existe ou não, se no caso não existir ele não deixará prosseguir!!!

Espero ter Ajudado!!!
Tópico encerrado , respostas não são mais permitidas