PESQUISA EM COMBO BOX NAO PELO INICIO

EXPOLETA 31/10/2012 17:43:28
#413299
GENTE., pesquisar num combo box eh barbada. ja fiz a pesquisa onde ele procura pelo inicio, vai axando vai completando, o problema eh q tenho um combo onde fica assim:
1 |A
2 |B
3 |C
4 |D

dai kero pesquisar a partir do [Ô] | [Ô] ..
se digitar A ele seta no primeiro item e assim por diante..

ajudem!
desde ja agradeço
KERPLUNK 31/10/2012 17:49:19
#413301
Estes dados vêm de um banco de dados, certo?
EXPOLETA 31/10/2012 17:50:25
#413302
o combo ja esta populadoo... e ja tenho a rotina q pesquina pelo inicio... mas tem um clinete xato q quer pesquisar pelo nome , e n kero mudar todos os carregamentos invertendo .. nome | codigo ..
KERPLUNK 31/10/2012 17:56:05
#413303
Amigo, pesquisa, se faz contra O BANCO. A combo estando ou não populada, é irrelevante. Precisa fazer pesquisa, pesquisa no banco, traga os resultados e preencha a combo.
EXPOLETA 31/10/2012 17:58:54
#413304
n cara; tu n entendeu. o COMBO JA ESTA POPULADO com as informações do banco.. ja popolei, dai kero pesquisar no conteudo JA CARREGADO! apartir de certo ponto..
KERPLUNK 31/10/2012 19:24:21
#413307
for i% = 0 to cmdSEUCOMBO.items.count -1
if cmdSEUCOMBO(i%) = [Ô]VALOR PROCURADO[Ô] Then
msgbox [Ô]encontrei[Ô]
end if
next i%

Mas você nunca vai desenvolver nada realmente bem feito pensando dessa forma... sem ofensas...
MARCELO.TREZE 31/10/2012 20:21:30
#413313
Poste como você faz a consulta atualmente, para podermos adaptar.

EXPOLETA 01/11/2012 11:16:05
#413351
esse codigo pesquisa no inicio... QUEREMOS PROCURAR a PARTIR DO [Ô] |[Ô] ..

Sub ProcuraCbo(Cbo As ComboBox)
Dim PEsq As String
Dim Aux As String

If Cbo.ListCount > 0 And Len(Cbo.Text) > 0 Then
x = Len(Cbo.Text)
PEsq = [Ô]N[Ô]
Aux = Cbo.Text
I = 0
For I = 0 To Cbo.ListCount - 1
If UCase(Aux) = UCase(Mid(Cbo.List(I), 1, x)) Then
Cbo.Text = Cbo.List(I)
Cbo.SelStart = x
Cbo.SelLength = Len(Cbo.Text) - x
PEsq = [Ô]S[Ô]
Exit For
End If
Next
If PEsq = [Ô]N[Ô] Then
ChvCbo = [Ô]N[Ô]
Cbo.Text = [Ô][Ô]
Else
ChvCbo = [Ô]S[Ô]
End If
Else
If Cbo.ListCount < 1 Then
Cbo.Text = [Ô][Ô]
End If
End If
End Sub

EXPOLETA 01/11/2012 11:29:54
#413357
AE GALERA . consegui valeu a atenção .. VEJAM ABAIXO COMO FICOU E FUNCIONA PERFEITAMENTE;
ao invez da chamada da rotina estar no CHANGE DO COMBO esta no KEYUP !

Sub ProcuraCbo_TESTE(Cbo As ComboBox, depoisDe As String)
Dim PEsq As String
Dim Aux As String

If Cbo.ListCount > 0 And Len(Cbo.Text) > 0 Then
x = Len(Cbo.Text)
PEsq = [Ô]N[Ô]

xPESQ = InStr(1, Cbo.Text, depoisDe)

If xPESQ = 0 Then
Aux = Cbo.Text
Else
Aux = Mid(Cbo.Text, xPESQ + 1, x)
End If

I = 0
For I = 0 To Cbo.ListCount - 1
xPESQ = InStr(1, Cbo.List(I), depoisDe)

If UCase(Aux) = UCase(Mid(Cbo.List(I), xPESQ + 1, Len(Aux))) Then
Cbo.Text = Cbo.List(I)
Cbo.SelStart = xPESQ + Len(Aux)
Cbo.SelLength = Len(Cbo.Text) - xPESQ
PEsq = [Ô]S[Ô]
Exit For
End If
Next
If PEsq = [Ô]N[Ô] Then
ChvCbo = [Ô]N[Ô]
Cbo.Text = [Ô][Ô]
Else
ChvCbo = [Ô]S[Ô]
End If
Else
If Cbo.ListCount < 1 Then
Cbo.Text = [Ô][Ô]
End If
End If
End Sub


VALEU
Tópico encerrado , respostas não são mais permitidas