Ir para conteúdo
Fórum Script Brasil
  • 0

Pesquisa por caracter ou número


Marco Canhoto

Pergunta

Bom dia a todos.

Em um projeto no VB6, eu criei um botão para pesquisar dados de uma tabela em access.

Eu criei três botões de pesquisa. O primeiro botão pesquisa os dados por data, o segundo por nome e o terceiro por unidade.

Abaixo, eis o código que eu coloquei no evento Click do botão:

Private Sub cmddata_Click()

Text1 = InputBox("Informe a data")

If Text1 = "" Then

Exit Sub

End If

codAnterior = ado.Recordset.Bookmark

ado.Recordset.Find ("data=") & Text1

If ado.Recordset.EOF = True Then

MsgBox "data inexistente", , "Atenção"

ado.Recordset.Bookmark = codAnterior

End If

End Sub

---------------------------------------------------------

A questão é que eu criei o mesmo código para a pesquisa por nome, apenas mudei a linha ado.Recordset.Find ("data=") & Text1, para a linha ado.Recordset.Find ("paciente=") & Text1.

Só que aparece o seguinte erro:

run-time error '3001':

Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.

No Debug, aponta para a linha que eu mudei.

a coluna paciente da minha tabela está como texto. Será que o erro é porque trata-se de caracter? e com ofaço para pesquisar por caracter, por data ou por número?

Desde já agradeço a atenção.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Então Kuroi,

Eu mudei o código como você indicou, mas continua dando o mesmo erro e apontando na linha do ado.Recordset.Find.

Na minha tabela, paciente se refere a coluna.

Private Sub cmdpaciente_Click()

Text1 = InputBox("Informe o nome do paciente", " paciente ")

If Text1 = "" Then

Exit Sub

End If

codAnterior = ado.Recordset.Bookmark

ado.Recordset.Find " paciente = " & Text1

If ado.Recordset.EOF = True Then

MsgBox "paciente inexistente", , "Atenção"

ado.Recordset.Bookmark = codAnterior

End If

End Sub

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia!

Eu coloquei o código que você orientou, mas deu o seguinte erro:

Run-time error '424':

Object Required

-----------------------------------------

Depois eu tirei o ".text." e deixei o código da seguinte maneira:

ado.Recordset.Find "paciente= ' " & Text1 & " ' "

com esse código ele consegue encontrar o registro na primeira pesquisa. quando eu tento pesquisar novamente, me retorna a mensagem de paciente inexistente, como se não houvesse o registro que eu busquei e todos os campo onde apareceriam os dados desse paciente, como data, paciente, unidade, serviço, valor, etc ficam em branco.

Link para o comentário
Compartilhar em outros sites

  • 0
Eu coloquei o código que você orientou, mas deu o seguinte erro:

Run-time error '424':

hum pensei q Text1 fosse uma textbox.

ado.Recordset.Find "paciente= ' " & Text1 & " ' "

com esse código ele consegue encontrar o registro na primeira pesquisa. quando eu tento pesquisar novamente, me retorna a mensagem de paciente inexistente, como se não houvesse o registro que eu busquei e todos os campo onde apareceriam os dados desse paciente, como data, paciente, unidade, serviço, valor, etc ficam em branco.

antes do Find, de sempre um MoveFirst pra ir pro primeiro registro. porque ele comeca a procurar a partir da posicao atual do recordset. faca tipo assim:

ado.RecordSet.MoveFirst
ado.Recordset.Find "paciente= ' " & Text1 & " ' "[/code]

Link para o comentário
Compartilhar em outros sites

  • 0

Deu certo Kuroi! Funciona certinho!

Agora, aproveitando o tópico, Eu construi um DataReport e um Data Environment para um relatório. Como eu faço para imprimir um relatório por data a aprtir de uma pesquisa?

Por exemplo: Eu tenho duas textbox, uma de data inicial e a outra de data final. Na data Inicial eu coloco 01/01/2008 e na data final eu coloco 31/01/2008. como faço para que imprima apenas os registros dentro desse intervalo de datas no DataReport?

Uma outra coisa que eu não estou conseguindo é criar uma formatação de data na text box como faço?

Desde já obrigado pela solução da pesquisa!

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, aproveitando o tópico, Eu construi um DataReport e um Data Environment para um relatório. Como eu faço para imprimir um relatório por data a aprtir de uma pesquisa?

Por exemplo: Eu tenho duas textbox, uma de data inicial e a outra de data final. Na data Inicial eu coloco 01/01/2008 e na data final eu coloco 31/01/2008. como faço para que imprima apenas os registros dentro desse intervalo de datas no DataReport?

não uso o DataReport então não sei direito. o filtro você faz no proprio ADO?? se for, tenta isso:

ado.Recordset.Find "data Between '" & data1 & "' And '" & data2 & "'"
ou isso:
ado.Recordset.Find "data Between #" & data1 & "# And #" & data2 & "#"

Uma outra coisa que eu não estou conseguindo é criar uma formatação de data na text box como faço?

acho melhor usar o MaskEdBox (adicione o componente Microsoft Masked Edit Control 6.0)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...