AJUDA COM ALGORITMO DE PESQUISA
Oi gente é o seguinte:Numa aplicação vb 6 com banco de dados aqui com dois indÃces, código e nome do cliente. Eu quero que o usuário possa digitar tanto código quanto nome para poder fazer a pesquisa.Mas eu sei fazer só com o Ãndice código.Preciso da ajuda de alguém pro usuário poder digitar na InputBx tanto o nome como o código e achar o q procura.Bom, eu fiz assim:
Fiz um botão [Ô]Consulta[Ô] desse jeito
Private Sub cmdConsultar_Click()
Dim valorpesquisa As String
valorpesquisa = InputBox([Ô]Digite o códigoou o nome do cliente para encontrar[Ô])
DadosClientes.Recordset.FindFirst [Ô]Codigo=[Ô] & Val(valorpesquisa)
If DadosClientes.Recordset.NoMatch = True Then
MsgBox [Ô]Este Registro não foi encontrado no Banco de Dados![Ô]
End If
End Sub
Desse jeito ele só procura pelo número do código.
O que eu faço então pro aplicativo procurar pelo indice [Ô]Codigo[Ô] e pelo indice [Ô]Nome[Ô] ao mesmo tempo?
Desde já agradeço.
Fiz um botão [Ô]Consulta[Ô] desse jeito
Private Sub cmdConsultar_Click()
Dim valorpesquisa As String
valorpesquisa = InputBox([Ô]Digite o códigoou o nome do cliente para encontrar[Ô])
DadosClientes.Recordset.FindFirst [Ô]Codigo=[Ô] & Val(valorpesquisa)
If DadosClientes.Recordset.NoMatch = True Then
MsgBox [Ô]Este Registro não foi encontrado no Banco de Dados![Ô]
End If
End Sub
Desse jeito ele só procura pelo número do código.
O que eu faço então pro aplicativo procurar pelo indice [Ô]Codigo[Ô] e pelo indice [Ô]Nome[Ô] ao mesmo tempo?
Desde já agradeço.
Use está condição,dentro dela coloque sua pesquisa. Daoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo?
Dim x As String, valorpesquisa As String
x = MsgBox([Ô]Se deseja consultar registro por código,clica em SIM caso contário NÂO.[Ô], 36, [Ô]Aviso[Ô])
If x = 6 Then [ô]se na variável x esta armazenado (6) que significa que o usuário apertou o botão sim
valorpesquisa = InputBox([Ô]Digite o código do cliente para encontrar[Ô])
Else
valorpesquisa = InputBox([Ô]Digite o Nome do cliente para encontrar[Ô])
End If
é um jeito
Dao cara,mude para melhor.
Dim x As String, valorpesquisa As String
x = MsgBox([Ô]Se deseja consultar registro por código,clica em SIM caso contário NÂO.[Ô], 36, [Ô]Aviso[Ô])
If x = 6 Then [ô]se na variável x esta armazenado (6) que significa que o usuário apertou o botão sim
valorpesquisa = InputBox([Ô]Digite o código do cliente para encontrar[Ô])
Else
valorpesquisa = InputBox([Ô]Digite o Nome do cliente para encontrar[Ô])
End If
é um jeito
Dao cara,mude para melhor.
Basta verificar se o que o usuário digitou é numérico ou não e fazer a condição
Private Sub cmdConsultar_Click()
Dim valorpesquisa As String
valorpesquisa = InputBox([Ô]Digite o códigoou o nome do cliente para encontrar[Ô])
If IsNumeric(valorpesquisa) Then
DadosClientes.Recordset.FindFirst [Ô]Codigo=[Ô] & CLng(valorpesquisa)
Else
[ô]Se desejar a pesquisa por parte do nome descomente a linha abaixo e comente a linha posterior
[ô]DadosClientes.Recordset.FindFirs [Ô]Nome LIKE *[ô][Ô] & valorpesquisa & [Ô]*[ô][Ô]
DadosClientes.Recordset.FindFirs [Ô]Nome = [ô][Ô] & valorpesquisa & [Ô][ô][Ô]
Endif
If DadosClientes.Recordset.NoMatch = True Then
MsgBox [Ô]Este Registro não foi encontrado no Banco de Dados![Ô]
End If
End Sub
ta certo isso aqui:
[ô]DadosClientes.Recordset.FindFirs [Ô]Nome LIKE *[ô][Ô] & valorpesquisa & [Ô]*[ô][Ô] ?
Coloquei e olha os erros que aparecem
syntax error(missing operator) in expression
[ô]DadosClientes.Recordset.FindFirs [Ô]Nome LIKE *[ô][Ô] & valorpesquisa & [Ô]*[ô][Ô] ?
Coloquei e olha os erros que aparecem
syntax error(missing operator) in expression
Rapaz. faltou um T no findfirst
[ô]DadosClientes.Recordset.FindFirst [Ô]Nome LIKE [ô]*[Ô] & valorpesquisa & [Ô]*[ô][Ô] ?
Se com o * não funcionar. Troque por %
[ô]DadosClientes.Recordset.FindFirst [Ô]Nome LIKE [ô]*[Ô] & valorpesquisa & [Ô]*[ô][Ô] ?
Se com o * não funcionar. Troque por %
A melhor forma de fazer isto é não usar o objeto DATACONTROL.
Você obtém resultado satisfatório e compreende o que acontece.
Escrever o código acho bem melhor.
Você obtém resultado satisfatório e compreende o que acontece.
Escrever o código acho bem melhor.
troquei por % e deu certo.Obrigado.Vou fechar o tópico
Tópico encerrado , respostas não são mais permitidas