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] Problema ao usar DoCmd.SearchForRecord

    avatar
    lucasrubini
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 24/11/2023

    [Resolvido] Problema ao usar DoCmd.SearchForRecord Empty [Resolvido] Problema ao usar DoCmd.SearchForRecord

    Mensagem  lucasrubini 5/12/2023, 13:54

    Olá!

    Criei um formulário simples de cadastro de Pessoa Física/Jurídica, onde existe um campo do tipo "caixa de combinação" (cboIrPara) para navegar entre os registros existentes.

    O campo cboIrPara foi vinculado ao evento AfterUpdate, da seguinte linha:

    Código:
    Private Sub cboIrPara_AfterUpdate()
        
        DoCmd.SearchForRecord , "", acFirst, "[id] = " & Str(Nz(Screen.ActiveControl, 0))

    End Sub

    Além disso, existe um campo não acoplado, cpf_cnpj, que é alterado no Form_Current para mostrar o campo cpf ou cnpj, de acordo com o registro mostrado.

    Agora o problema:

    Digamos o registro id = 1 seja uma pessoa física (tipo_pessoa = 1), e o registro id = 2 seja uma pessoa jurídica (tipo_pessoa = 2).
    Se eu navego do id = 1 para o id = 2 pelo cboIrPara, todos os campos são preenchidos corretamente. Todavia, se retorno do id = 2 para o id = 1, seu cpf não é preenchido.

    Se eu utilizo outro método para navegar pelos registros, o problema não acontece. Exemplo:

    Código:
    Private Sub cboIrPara_AfterUpdate()
        
        ' Encontra o registro que coincide com o controle.
        Dim rs As Object

        Set rs = Me.Recordset.Clone
        rs.FindFirst "[id] = " & Str(Nz(Screen.ActiveControl, 0))
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
        
    End Sub

    Alguma ideia do que pode estar acontecendo? Anexei o arquivo para análise de vocês.

    Obrigado!
    Anexos
    [Resolvido] Problema ao usar DoCmd.SearchForRecord AttachmentFU2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (189 Kb) Baixado 6 vez(es)


    Última edição por lucasrubini em 14/12/2023, 12:42, editado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido] Problema ao usar DoCmd.SearchForRecord Empty Re: [Resolvido] Problema ao usar DoCmd.SearchForRecord

    Mensagem  Alexandre Neves 6/12/2023, 20:59

    Boa noite e bem-vindo ao fórum
    Leia as regras e cumpra-as para mantermos o fórum limpo, organizado e de fácil utilização

    Sobre a sua dúvida, onde tem
    Código:
    'DoCmd.SearchForRecord , , acFirst, "[id] = " & Str(Nz(Screen.ActiveControl, 0))
    coloque
    Código:
    DoCmd.SearchForRecord , , acFirst, "[id] = " & cboIrPara
        tipo_pessoa_AfterUpdate


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    lucasrubini
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 24/11/2023

    [Resolvido] Problema ao usar DoCmd.SearchForRecord Empty Re: [Resolvido] Problema ao usar DoCmd.SearchForRecord

    Mensagem  lucasrubini 6/12/2023, 23:55

    Olá Alexandre!

    De fato funciona, mas ainda não explica por que o problema ocorre somente no primeiro registro (pelo menos por aqui). Conseguiu replicar aí?

    De qualquer forma, obrigado pela ajuda!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido] Problema ao usar DoCmd.SearchForRecord Empty Re: [Resolvido] Problema ao usar DoCmd.SearchForRecord

    Mensagem  Alexandre Neves 7/12/2023, 19:46

    Boa noite
    Não me debrucei sobre a razão mas, se estiver resolvido, marque o "Resolvido"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    lucasrubini
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 24/11/2023

    [Resolvido] Problema ao usar DoCmd.SearchForRecord Empty Re: [Resolvido] Problema ao usar DoCmd.SearchForRecord

    Mensagem  lucasrubini 14/12/2023, 11:14

    Bom dia Alexandre,


    Eu acabei não marcando como resolvido porque a questão é saber o porquê desse problema estar acontecendo e somente no primeiro registro.

    É algum bug? Alguma outra ideia? É curiosidade mesmo, afinal eu também já havia encontrado uma solução alternativa que funciona.


    Outra coisa que percebi recentemente é que o evento "On Current" não dispara ao sair de um registro X para o registro 1.


    Obrigado.
    avatar
    lucasrubini
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 24/11/2023

    [Resolvido] Problema ao usar DoCmd.SearchForRecord Empty Re: [Resolvido] Problema ao usar DoCmd.SearchForRecord

    Mensagem  lucasrubini 14/12/2023, 12:19

    Parece ser um bug mesmo: https://answers.microsoft.com/en-us/msoffice/forum/all/searchforrecord-does-not-trigger-oncurrent-form/50fe2556-6f88-4eb4-a10f-4fbb739b1dc0

    Conteúdo patrocinado


    [Resolvido] Problema ao usar DoCmd.SearchForRecord Empty Re: [Resolvido] Problema ao usar DoCmd.SearchForRecord

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 03:48