MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Erro no código para Localizar registro e próximo registro

    Compartilhe

    kadufc
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 05/11/2012

    [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc em 12/10/2016, 03:00

    Olá mestres do forum!

    Mais uma vez recorro a ajuda de vcs para me ajudar a resolver um erro de em um código que estou criando.

    É o seguinte criei um botão pesquisar e nele coloquei um código para pesquisar parte de um nome e encontrar o primeiro registro correspondente na tabela. E depois voltar a clicar e continuar pesquisando outros nomes correspondentes até terminar de percorrer toda a tabela.

    O meu código esta fazendo a busca por parte do nome corretamente, porém não continua a buscar o próximo depois que achou o primeiro registro. Alguém pode analisar e me ajudar a descobrir onde estou errando? Desde já agradeço. Segue o código abaixo:

    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("Select * from TAB_Registro_Paciente")

    rs.FindFirst "NOME like '" & Me![Txt_Pesquisa_Nome] & "*'"

    If rs.NoMatch Then
    MsgBox "Paciente não Encontrado!"
    Me.Txt_Pesquisa_Nome.SetFocus

    Else
    Me.Bookmark = rs.Bookmark (Até aqui esta funcionando, porem não segue para próxima linha para continuar a busca)

    rs.MoveNext

    Do While Not rs.EOF
    rs.FindNext "NOME like '" & Me![Txt_Pesquisa_Nome] & "*'"
    Loop
    End If

    rs.Close 'Fecha a recordset
    Set rs = Nothing
    avatar
    rubenscouto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 620
    Registrado : 02/10/2011

    Re: [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  rubenscouto em 12/10/2016, 03:10

    para este tipo de recurso faz-se necessário criar uma lista e acima dela um campo de pesquisa que, ao alterar o valor deste campo, refaça a consulta de busca dos campos da lista.

    kadufc
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 05/11/2012

    Re: [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc em 12/10/2016, 12:56

    Bom dia Rubens, obrigado pelo retorno!

    Bem sua sugestão é uma boa alternativa, porem eu teria que mexer na estrutura do formulário ou criar outro. Como parte do meu código funciona bem, gostaria de tentar adequar a segunda parte para buscar o próximo registro correspondente, que é onde estou comendo bola em alguma coisa.

    Sei que existe comando assim para vba no access do jeito que preciso, pois, andei lendo e pesquisando no forum e na internet, mais meu conhecimento em vba ainda é pouco, por isso estou com dificuldade de montar o código. Grato

    kadufc
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 05/11/2012

    Re: [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc em 12/10/2016, 13:01

    Poderia ser porque não estou utilizando o DAO. Ou quem sabe se colocar o comando de buscar o próximo registro correspondente em um outro botão tipo (+) ou (proximo), ja que a primeira busca o código esta fazendo?

    kadufc
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 05/11/2012

    Re: [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc em 12/10/2016, 13:50

    Ainda não consegui, se alguém puder me ajudar ficarei grato.

    kadufc
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 61
    Registrado : 05/11/2012

    Re: [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc em 12/10/2016, 17:16

    Galera consegui por intermédio de um exemplo deixado no Fórum pelo J.Paulo. Adaptei as minhas necessidades e ficou perfeito.
    Vou deixar o exemplo abaixo para que possa ajudar outras pessoas:

    Private Sub Txt_Pesquisa_Nome_AfterUpdate()

    Dim rs As Object
    Dim resposta As String

    If IsNumeric(Me.Txt_Pesquisa_Nome) = True Then 'verifica se foi digitado numero ao invés de texto...
    MsgBox "Não é Permitido Números no Campo NOME!"
    Me.Txt_Pesquisa_Nome.value = Null
    Me.Txt_Pesquisa_Nome.SetFocus
    Exit Sub

    Else

    Me.Txt_Pesquisa_Nome = DLTiraAcentos(Me.Txt_Pesquisa_Nome) 'Função que tenho em um módulo para pesquisar o nome sem ascento e evitar erro... (opcional)
    End If

    resposta = Txt_Pesquisa_Nome 'Coloquei o InputBox antes do Do... pra repetir a mesma pesquisa
    If resposta <> "" Then 'Encontra um registro...
    DoCmd.GoToRecord , , acFirst ' Mesmo o codigo encontrar o 1º registro.. eu tive que colocar essa linha de baixo, porque ele nao voltava

    Do

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[PRONTUARIO] LIKE " & PRONTUARIO.value 'acha o primeiro registro do campo chave primária para poder fazer o loop
    rs.FindNext "NOME LIKE '*" & resposta & "*'" 'procura próximo informado na caixa d texto dentro do loop
    If rs.NoMatch = True Then MsgBox "Nome não Encontrado...", vbInformation, "Pesquisa": Exit Sub 'se não existir ou chegar ao ultimo, dá msg
    Me.Txt_Pesquisa_Nome.value = Null

    If Not rs.EOF Then 'se encontrar devolve
    Me.Bookmark = rs.Bookmark

    If MsgBox("Deseja Localizar Próximo Registro do Nome: " & UCase(resposta) & "", vbYesNo + vbQuestion, "Localizar Registro") = vbYes Then

    Else
    Exit Sub
    End If
    End If
    Loop
    End If

    End Sub

      Data/hora atual: 16/8/2018, 04:53