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

    Atualizar Campo somado via comando Update

    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty Atualizar Campo somado via comando Update

    Mensagem  mpsbra 8/12/2014, 19:50

    Amigos, mais uma vez venho solicitar a ajuda de vocês.

    Estou tentando aplicar um resultado somados atraves de um comando update no sql utilizando comandos no vba.

    O que eu quero é somar os campos de totais relacionados ao numero do pedido e envia-los para a tabela entrada de pedidos.

    Escrevi a linha desta forma;


    DoCmd.SetWarnings False
    DoCmd.RunSQL "update tblEntradaPedido set ValorDev=(sum(tblDetalhePedidoProduto.total)) where tblEntradaPedido.IDEP=" & Me.cboEntPedido & ";"
    DoCmd.SetWarnings True

    mais todas as vezes que o comando é executado ele apresenta esta mensagem de erro


    Erro em tempo de execução 3122.

    Então oque devo fazer?

    Desde já agradeço,

    Márcio P. Soares
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Atualizar Campo somado via comando Update Empty Atualizar Campo somado via comando Update

    Mensagem  good guy 9/12/2014, 14:07

    Olá Marcio,

    Em primeiro lugar vamos tirar essa cara de desânimo e ser mais otimista. Verifique a troca em sua instrução SQL do nome da combo por uma variável que a represente. Entendeu?

    Código:
    DoCmd.SetWarnings False
    DoCmd.RunSQL "update tblEntradaPedido set ValorDev=(sum(tblDetalhePedidoProduto.total)) where tblEntradaPedido.IDEP=" & Me.cboEntPedido & ";"
    DoCmd.SetWarnings True

    Por exemplo, vc pode colocar assim:

    Código:
    Dim sEntPedido as Double     ' se for algum valor que exija precisão com duas casas decimais

    sEntrPedido = me.cboEntPedido.Column(0)    'Ou Column(n) dependendo de sua posição como coluna na tabela.
    DoCmd.SetWarnings False
    DoCmd.RunSQL "update tblEntradaPedido set ValorDev=(sum(tblDetalhePedidoProduto.total)) where tblEntradaPedido.IDEP=" & sEntPedido & ";"
    DoCmd.SetWarnings True
    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty good guy

    Mensagem  mpsbra 9/12/2014, 15:31

    Primeiramente obrigado mesmo! Que o Senhor Jeová continue te abençoando e fazendo de ti uma pessoa prospera em conhecimento e saúde, em nome de Jesus!

    Eu fiz conforme informado, sendo que a função é jogada no depurador, e logo vejo que no depurador é informado somente o valor da sEntPedido que está correto, mais o ValorDev não recebe o valor do campo Total.

    A mensagem no depurador é esta;

    Erro em tempo de execução '3122':
    Você tentou executar uma consulta que não inclui a expressão especifica 'ValorDev' como parte de uma função de agregação.

    O que pode ser???

    E já tentei um outro jeito, mais tambem deu erro no depurador;

    DoCmd.RunSQL "update tblEntradaPedido set ValorDev=(Select cboEntPedido, sum(TotalPP) from tblDetalhePedidoProduto where exist(select IDEP from tblEntradaPedido where tblEntradaPedido.IDEP=tblDetalhePedidoProduto.cboEntPedido))"

    As duas maneiras que tentei, nenhuma funcionou como eu esperava.

    Desde já,
    Novamente Obrigado!

    Márcio P. Soares
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Atualizar Campo somado via comando Update Empty Atualizar Campo somado via comando Update

    Mensagem  good guy 9/12/2014, 15:48

    Olá Márcio,

    Estou com dificuldade de entender que tipo de dados vc poder estar trabalhando, por isso me poste um demo de seu bd para que eu possa testar e checar onde está o erro.
    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty Enviando bd

    Mensagem  mpsbra 9/12/2014, 16:09

    Estou enviando o bd. O mesmo está em access 2010.

    Abra o formulário formEntrada Pedido
    Na primeira guia está o subformulário que usa a linha de codigo que eu postei anteriormente. O formulário que está com o codigo é cltlDetalhedoPedidoProduto.
    Os codigos que eu citei, estão como comentários no final do codigo, seria executado apos atualizar formulário.

    Obrigado novamente e fico no aguardo,

    Márcio P. Soares
    Anexos
    Atualizar Campo somado via comando Update AttachmentBackup Sistema 09-12-14 - 2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (449 Kb) Baixado 12 vez(es)
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Atualizar Campo somado via comando Update Empty Atualizar Campo somado via comando Update

    Mensagem  good guy 9/12/2014, 16:24

    Olá Márcio,

    Veja se é isto o que vc quer:

    Código:
    Private Sub Form_AfterUpdate()
    Dim sEntPedido As Double    ' se for algum valor que exija precisão com duas casas decimais
    sEntPedido = Me.cboEntPedido.Column(0)    'Ou Column(n) dependendo de sua posição como coluna na tabela.
    DoCmd.SetWarnings False
    DoCmd.RunSQL "update tblEntradaPedido set ValorDev=(sum(totalpp)) where IDEP=" & sEntPedido & ";"
    DoCmd.SetWarnings True
    End Sub
    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty Continuou o erro

    Mensagem  mpsbra 9/12/2014, 16:40

    Fiz a modificação e o erro continuou

    Sad aiai

    Teria uma outra ferramenta?
    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty Organização do codigo

    Mensagem  mpsbra 9/12/2014, 16:53

    Good Guy, mais uma vez agradeço pela paciencia!

    Os codigos não estão bem organizados, pois este é o primeiro bd que faço com tantas funções assim. Eu já estou passando ele a limpo e colocando as informações dentros dos parametros solicitados, sendo que não é facil rs, mais vou concluir. Sendo que esta faze agora é a mais pesada, pois esta função eu quero emprega-la ao na soma de cada linha baseada no campo TotalPP da tabela tblDetalhePedidoProdutos que esteja relacionada a tabela tblEntradaPedido. Então já tentei de tudo mais está meio dificil, pois estou começando a usar o vba agora. Então é isso.
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Atualizar Campo somado via comando Update Empty Atualizar Campo somado via comando Update

    Mensagem  good guy 9/12/2014, 16:58

    Olá Marcio,

    Aqui não apresenta nenhum erro. Funfa ok, isto é, sem erro.
    Anexos
    Atualizar Campo somado via comando Update AttachmentBackup Sistema 09-12-14 - 2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (474 Kb) Baixado 31 vez(es)
    avatar
    Convidado
    Convidado


    Atualizar Campo somado via comando Update Empty Re: Atualizar Campo somado via comando Update

    Mensagem  Convidado 9/12/2014, 17:03

    Boa tarde,

    Baixei BD e tb não me dá erro nenhum...

    Abraço... Cool
    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty Arquivo baixado agora

    Mensagem  mpsbra 9/12/2014, 17:07

    Baixei o Arquivo e Apresentou este erro quando executei os procedimentos no formulário.

    Nas preferencias do vba, quais são as bibliotecas que estão habilitadas no seu vba?
    Anexos
    Atualizar Campo somado via comando Update Attachmenterro 4.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (237 Kb) Baixado 8 vez(es)
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Atualizar Campo somado via comando Update Empty Atualizar Campo somado via comando Update

    Mensagem  good guy 9/12/2014, 17:24

    Olá Márcio,

    Bibliotecas utilizadas:

    Visual Basic For Applications
    Microsoft Access 14.0 Object Library
    OLE Automation
    Microsoft Office 14.0 database engine Object Library

    Outra coisa, verifiquei que vc trabalha as instruções SQL no formato do SQL Server. Não é necessário no Access.

    Prefira:

    DoCmd.RunSQL "update tblEntradaPedido set ValorDev=(sum(totalpp)) where IDEP=" & sEntPedido & ";"

    a:

    DoCmd.RunSQL "update tblEntradaPedido set tblEntradaPedido.ValorDev=(sum(totalpp)) where tblEntradaPedido.IDEP=" & sEntPedido & ";"
    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty Amigos não sei o que fazer

    Mensagem  mpsbra 9/12/2014, 17:34

    a minha biblioteca e a mesma de vocês.

    Meu Windows 7 é 64bits e ja verifiquei tudo. Tem alguma outra coisa a ser feita. aqui só depura Crying or Very sad
    Não sei mais o que fazer...
    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty Re: Atualizar Campo somado via comando Update

    Mensagem  mpsbra 9/12/2014, 17:38

    Então, o campo está como você me aconselhou, inclusive copiei e colei rs, mais mesmo assim nada. estou pensando em umas coisas mais não sei se seria confiavel. Estou pretendendo utilizar o rodape do formulario e atualizar apartir dali, mais ja verifiquei um atrazo na atualização, pois o mesmo só percebe o campo depois de registrar a linha, então fica mais dificil.
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Atualizar Campo somado via comando Update Empty Atualizar Campo somado via comando Update

    Mensagem  good guy 9/12/2014, 17:42

    Olá Márcio,

    Outro problema é que o seu sistema está muito complexo e talvez não esteja seguindo uma modelagem de dados correta, além do que suas instruções sql não estarem exatamente dentro dos padrões do Access. Outro problema é que não consigo entender o que o seu formulário deveria fazer ao ser aberto. Tente descrever passo-a-passo o que ele deveria fazer. Crie um algoritmo para facilitar o nosso raciocínio. Em uma visão geral só vc deve entender a coisa. Além do mais nem existem comentários em seu código. Tá brabo. Teste os formulários mais simples, vai eliminando os problemas em todos os formulários. Quando só restar este formulário vamos então encontrar uma solução simples e fim-de-papo.
    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty Concordo com você

    Mensagem  mpsbra 9/12/2014, 17:47

    Good Guy concordo com você!

    os outros formulários já estão "funcionando devidamente" dentro do que eu preciso agora, mais ainda falta muito para ficar perfeito.
    Neste caso, eu queria somente somar o campo "TotalPP" de cada linha do Pedido para aplicar o Valor Total Devido pelo cliente.


    Mesmo assim, obrigado pela paciencia e ajuda, vou verificar mais de perto os detalhes e organizar como manda o figurino.

    Obrigado a todos,

    Márcio P. Soares
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Atualizar Campo somado via comando Update Empty Atualizar Campo somado via comando Update

    Mensagem  good guy 9/12/2014, 18:37

    Olá Márcio,

    Estávamos cometendo um erro primário e não tinha percebido. O código tem que entrar no evento Form_Open. Veja o código com algumas modificações:


    Código:
    Private Sub Form_Open(Cancel As Integer)
    On Error Resume Next
    Dim sEntPedido As Double     ' se for algum valor que exija precisão com duas casas decimais
    Dim sTotal As Double

    sEntPedido = Me.cboEntPedido.Column(1) 'Ou Column(n) dependendo de sua posição como coluna na tabela.
    sTotal = Forms!cltlDetalhedoPedidoProduto!TotalPP

    DoCmd.SetWarnings False
    DoCmd.RunSQL "update tblEntradaPedido set ValorDev= '" & sTotal & "' where IDEP=" & sEntPedido & ";"
    DoCmd.SetWarnings True
    End Sub
    Anexos
    Atualizar Campo somado via comando Update AttachmentBackup Sistema 09-12-14 - 2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (516 Kb) Baixado 18 vez(es)
    mpsbra
    mpsbra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 21/08/2012

    Atualizar Campo somado via comando Update Empty Re: Atualizar Campo somado via comando Update

    Mensagem  mpsbra 9/12/2014, 19:05

    Verifiquei aqui, mais a soma não acontece. O arquivo que você postou apresenta uma msgbox com os valores 1 e 0, mais o resultado de atualização da tabela entrada pedido e campo valordev não acontece.
    Então ainda parado. Vou checar pode ser que meu computador esteja com algum bug.
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    Atualizar Campo somado via comando Update Empty Atualizar Campo somado via comando Update

    Mensagem  good guy 9/12/2014, 19:14

    Olá Márcio,

    Verifique que o campo ValorDev já está atualizado na tabela. Quanto a soma, este resultado vc precisa obter através da função DSum e o critério referente ao código IDEP eu acho e depois disponibilizá-lo através de uma variável.

    Conteúdo patrocinado


    Atualizar Campo somado via comando Update Empty Re: Atualizar Campo somado via comando Update

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 06:39