FAZER CONSULTA EM UM ARQUIVO TEXTO
Srs. bom dia!
Estou utilizando o vb6
Não estou conseguindo fazer um trabalho simples
Já coloquei no form dois componentes txtbox, um iria solicitar o nome do usuario e no outro irá retornar o sobrenome mesmo.
Como faço para pesquisar o nome(digitando qualquer parte do nome) do usuário num arquivo texto e retornar o sobrenome do mesmo.
Exemplo: digito no textbox o o nome francisco(ou apenas uma parte do nome), ele procura no arquivo texto(bd.txt) este nome e retorna no outro textbox o sobrenome do usuário. Como posso fazer isso?? lembrando que o nome eh separado do sobrenome por tab
bd.txt:
francisco(tab)almeida
patricia(tab)marques
joana(tab)quintal
Desde já agradeço a colaboração.
Estou utilizando o vb6
Não estou conseguindo fazer um trabalho simples
Já coloquei no form dois componentes txtbox, um iria solicitar o nome do usuario e no outro irá retornar o sobrenome mesmo.
Como faço para pesquisar o nome(digitando qualquer parte do nome) do usuário num arquivo texto e retornar o sobrenome do mesmo.
Exemplo: digito no textbox o o nome francisco(ou apenas uma parte do nome), ele procura no arquivo texto(bd.txt) este nome e retorna no outro textbox o sobrenome do usuário. Como posso fazer isso?? lembrando que o nome eh separado do sobrenome por tab
bd.txt:
francisco(tab)almeida
patricia(tab)marques
joana(tab)quintal
Desde já agradeço a colaboração.
Adapta ao seu código o código abaixo que deve funcionar mas, lembrese, como arquivo texto não tem indice, só acessa esta rotina quando o usuário clicar num botão e não no evento CHANGE....
Private Sub AddSNome(pNome As String)
Dim F As Integer
Dim mLinha As String
Dim mNome As String
Dim mSNome As String
Screen.MousePointer = vbHourglass
F = FreeFile
cbSobrenome.Clear
Open [Ô]bd.txt[Ô] For Input As #F
Do While Not EOF(F)
Line Input #F, mLinha
mNome = Left(mLinha, InStr(mLinha, vbTab) - 1)
mSNome = Mid(mLinha, InStr(mLinha, vbTab) + 1)
If InStr(1, UCase(mNome), UCase(pNome)) > 0 Then
cbSobrenome.AddItem mSNome
End If
Loop
Close #F
Screen.MousePointer = vbDefault
End Sub
mas tipo aonde no codigo que define o nome dos 2 textboxs e do botao de consulta?
alguem pra dar um help?? no codigo acima nao to sabendo identificar o que eh textbox e o que eh botao
Tenta isto
Coloque 02 textbox e 01 commandbutton no seu projeto
depois coloque oi seguinte código no commandbutton
teste pois escrevi o código de um PC sem o VB
Coloque 02 textbox e 01 commandbutton no seu projeto
depois coloque oi seguinte código no commandbutton
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(nLinha), UCase( Text1.Text) ) > 0 Then
Loc = Split(nLinha,vbTab)
Text2.Text = Loc(UBound(Loc))
End If
Loop
Close #F
End Sub
teste pois escrevi o código de um PC sem o VB
Quando eu executo nao aparece nada, eh isso mesmo? tem msn?
desculpe tinha um erro de digitação
tente novamente
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)
Text2.Text = Loc(UBound(Loc))
End If
Loop
Close #F
End Sub
tente novamente
agora funcionou mas como eu faço pra encrementar pq tipo o txt eh saparado o nome e sobrenome por esse caracter( | ) e quando digito la aparece o que eu digitei no text1 e o resultado de tudo junto aparece no text2 e eu queria que assim que ele achasse ele completasse o text1 com o nome e o text2 com o sobrenome achado correspondente akele nome que digitei no text1.
eh possivel?
eh possivel?
é separado por | não por tab então troque esta linha
veja agora
Loc = Split(mLinha,[Ô]|[Ô])
veja agora
kra sem kerer ser chato ja sendo, pow tu ta me ajudando pra caramba mas seguinte.
no text1 onde digito a palavra chave quando clico no botao ele no text2 joga o sobrenome certinho mas ele nao busca e joga no text1 o nome correspondente akele sobrenome saca? entao se eu digitar thia(no text1) e fizer a busca no text2 vai ficar marques e no text1 continua thia e eu queria que ficasse thiago saca? queria que ele autocompletasse tb o text1 com o nome e nao somente com a parte que eu digitei
no text1 onde digito a palavra chave quando clico no botao ele no text2 joga o sobrenome certinho mas ele nao busca e joga no text1 o nome correspondente akele sobrenome saca? entao se eu digitar thia(no text1) e fizer a busca no text2 vai ficar marques e no text1 continua thia e eu queria que ficasse thiago saca? queria que ele autocompletasse tb o text1 com o nome e nao somente com a parte que eu digitei
então esta ultima modificação
If InStr(1, UCase(mLinha), UCase( Text1.Text) ) > 0 Then
Loc = Split(mLinha,[Ô]|[Ô])
Text1.Text = Loc(LBound(Loc)) '<<<<<------
Text2.Text = Loc(UBound(Loc))
End If
Tópico encerrado , respostas não são mais permitidas