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

    Função Update para atualizar registro de outra tabela

    avatar
    viniciusgnr
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 50
    Registrado : 24/05/2012

    Função Update para atualizar registro de outra tabela Empty Função Update para atualizar registro de outra tabela

    Mensagem  viniciusgnr Seg Jan 05, 2015 9:25 pm

    Saudações, amigos.

    Tenho uma dúvida que acredito ser bem específica e não consegui encontrar uma solução pesquisando.

    Vou tentar explicar:

    1. Tenho um formulário (FormLiquidNLD1 e FormLiquidNLD2) baseado em uma consulta (digamos que lista "compras");
    2. Nesse formulário há um relatório filtrado como subformulário (RelNotasFiscais) que lista as notas fiscais referentes a essas "compras";
    3. Essas "compras" precisam ter um número de identificação, então esse formulário tem um campo aberto para preencher este número;
    4. Tem um relatório (RelNLD) que lista todas as "compras" sem número de identificação;
    5. Ao preencher o número, uso um código no VBA para atualizar o registro da Tabela de notas fiscais (TabNotasFiscais) de acordo com as notas fiscais dessas "compras".

    Enfim, estou usando o seguinte código:
    Código:
    DoCmd.RunSQL "UPDATE MinhaTabela SET MinhaTabela.MeuCampo = Forms!MeuForm!Campo WHERE MinhaTabela.MeuCampo = [Forms]![MeuForm]![MeuSubForm]![CampoNotaFiscal]"

    Quando só há uma nota fiscal para a "compra", funciona ok.

    Porém, quando há mais de uma nota fiscal, este código só está preenchendo o campo da primeira nota fiscal do subformulário na tabela.

    Onde estaria o erro do meu código?

    Se não consegui expressar bem, segue uma cópia do meu arquivo.

    Por segurança, limpei o banco de dados e joguei uns registros como exemplo, e o nome dos formulários e relatórios seguem acima.

    Desde já obrigado a todos!
    Anexos
    Função Update para atualizar registro de outra tabela AttachmentExample.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (361 Kb) Baixado 50 vez(es)
    avatar
    viniciusgnr
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 50
    Registrado : 24/05/2012

    Função Update para atualizar registro de outra tabela Empty Re: Função Update para atualizar registro de outra tabela

    Mensagem  viniciusgnr Dom Jan 18, 2015 6:55 pm

    Saudações, amigos.

    Depois de muitos testes e muitas pesquisas consegui resolver meu problema.

    Na verdade, refiz minha consulta que originava o relatório (e por conseguinte o formulário), e depois usei um loop para atualizar os registros. Não sei se é o modo mais correto, mas tá funcionando.

    Usei o Do...Loop Until pra não ficar num loop infinito e o código ficou mais ou menos assim:
    Código:
    Do
    DoCmd.RunSQL "UPDATE lalalalala SET lalalalala WHERE lalalalala"
    DoCmd.Requery (MeuForm) 'Pra atualizar o formulário e não girar um loop infinito
    Loop Until IsNull([Forms]![MeuForm]![MeuSubForm]![MeuCampo])
    Atualiza todos os registros de boa, mas no último loop, quando o formulário fica em branco por não existir mais, dá uma mensagem de erro "Você inseriu uma expressão que contém uma referência inválida à propriedade Form/Report".

    Alguma dica para sumir com esse erro? Ou algum dos códigos que são falhos?

    Desde já agradeço.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Função Update para atualizar registro de outra tabela Empty Re: Função Update para atualizar registro de outra tabela

    Mensagem  Alexandre Neves Seg Jan 19, 2015 5:50 pm

    Boa noite,
    Será
    While IsNull([Forms]![MeuForm]![MeuSubForm]![MeuCampo])
    DoCmd.RunSQL "UPDATE lalalalala SET lalalalala WHERE lalalalala"
    DoCmd.Requery (MeuForm) 'Pra atualizar o formulário e não girar um loop infinito
    End While


    .................................................................................
    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

    Conteúdo patrocinado


    Função Update para atualizar registro de outra tabela Empty Re: Função Update para atualizar registro de outra tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qui Nov 07, 2024 1:01 pm