MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

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

    avatar
    kadufc
    Intermediário
    Intermediário


    Respeito às regras : 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 Empty [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc 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
    rubenscouto
    rubenscouto
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  rubenscouto 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.
    avatar
    kadufc
    Intermediário
    Intermediário


    Respeito às regras : 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 Empty Re: [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc 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
    avatar
    kadufc
    Intermediário
    Intermediário


    Respeito às regras : 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 Empty Re: [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc 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?
    avatar
    kadufc
    Intermediário
    Intermediário


    Respeito às regras : 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 Empty Re: [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc 12/10/2016, 13:50

    Ainda não consegui, se alguém puder me ajudar ficarei grato.
    avatar
    kadufc
    Intermediário
    Intermediário


    Respeito às regras : 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 Empty Re: [Resolvido]Erro no código para Localizar registro e próximo registro

    Mensagem  kadufc 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

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 06:10