FAZER CONSULTA EM UM ARQUIVO TEXTO

GRAEFF 21/10/2009 15:54:38
#325969
ae!! funcionou show de bola!! valeu amigao!!
MARCELO.TREZE 21/10/2009 15:58:17
#325970
até só uma coisa se houverem varios nomes iguais exemplo

Fabio|Cunha
Fabio!Silveira
Fabiano|Joaquim


e vc digitar 'Fab'

irá selecionar somente o fabiano
se for Fabio somente o ultimo fabio será selecionado

cuiaddo apenas com isto

até
GRAEFF 21/10/2009 16:11:59
#325971
nao tem como fazer um botao de next? tipo pra passar todas os itens encontrados?
MARCELO.TREZE 21/10/2009 16:26:11
#325972
eu aconselharia vca carregar os dados em um listbox e selecionar no list box o desejado
MARCELO.TREZE 21/10/2009 16:31:48
#325973
então vamos lá inclua no seu projeto um listbox e altere o código

Private Sub Command1_Click()
Dim F As Integer
Dim mLinha As String
Dim Loc() As String
F = FreeFile
Open [Ô]c:\bd.txt[Ô] For Input As #F
Do While Not EOF(F)
Line Input #F, mLinha
If InStr(1, UCase(mLinha), UCase( Text1.Text) ) > 0 Then
Loc = Split(mLinha,vbTab)
List1.AddItem mLinha
End If
Loop
Close #F
End Sub



No Evento click do list Box coloque

Private Sub List1_Click()
Dim Func() As String
Func = Split(List1.List(List1.ListIndex),[Ô]|[Ô])
Text1.Text = Func(LBound(Func))
Text2.Text = Func(UBound(Func))
End Sub


e boa sorte

GRAEFF 21/10/2009 16:48:15
#325977
vou tentar assim, mas eh muito complicado fazer o resultado ficar guardado em uma variavel e conforme vai dando next vai passando as coisas que ele achou na busca??
MARCELO.TREZE 21/10/2009 16:57:01
#325979
é o seguinte dificil não é porém como eu disse o código acima eu já fiz sem o VB então algo assim já me complica mais um pouco.

depois vejo esta possibilidade pra você, mas o ideal seria condforme você foce digitando fosse aparecendo no listbox, ou seja, deixar o listbox embaixo do textbox e com a propriedade visible = False

e colocar o código do commandbutton dentro do evento Change ou keypress do textbox

exemplo

coloque o código abaixo dentro do evento Change do Text box

Private Sub Text1_Change()
Dim F As Integer
Dim mLinha As String
Dim Loc() As String
F = FreeFile
Open [Ô]c:\bd.txt[Ô] For Input As #F
Do While Not EOF(F)
Line Input #F, mLinha
If InStr(1, UCase(mLinha), UCase( Text1.Text) ) > 0 Then
Loc = Split(mLinha,vbTab)
List1.Visible = True
List1.AddItem mLinha
End If
Loop
Close #F
End Sub


coloque o list1 embaixo do Textbox1

e altere o evento do listbox

Private Sub List1_Click()
Dim Func() As String
Func = Split(List1.List(List1.ListIndex),[Ô]|[Ô])
Text1.Text = Func(LBound(Func))
Text2.Text = Func(UBound(Func))
List1.Clear
List1.Visible = False
End Sub


e veja o resultado

GRAEFF 21/10/2009 17:03:43
#325980
mas nesse caso entao morre o que ta no commandbutton?? pq tipo eu digitando em tempo real no text1 ele ja vai mostrando o que ele ta achando no text2 ou preciso ainda do botao?
MARCELO.TREZE 21/10/2009 17:06:48
#325984
é isso mesmo

só mais uma alteração no código pra ficar legal

Private Sub Text1_Change()
Dim F As Integer
Dim mLinha As String
Dim Loc() As String
F = FreeFile
Open [Ô]c:\bd.txt[Ô] For Input As #F
List1.Clear [ô] <<<-----
Do While Not EOF(F)
Line Input #F, mLinha
If InStr(1, UCase(mLinha), UCase( Text1.Text) ) > 0 Then
Loc = Split(mLinha,vbTab)
List1.Visible = True
List1.AddItem mLinha
End If
Loop
Close #F
End Sub
GRAEFF 21/10/2009 17:20:44
#325988
kra deu problema assim pq meu banco tem mais de 200 mil linhas e quando digitei a primeira palavra travou tudo... tipo como a gente muda pra tipo ele so procurar quando eu digitar 5 letras?
Página 2 de 3 [30 registro(s)]
Tópico encerrado , respostas não são mais permitidas