MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Usando SQL em VBA

    Compartilhe

    m_araujo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 75
    Registrado : 15/11/2012

    Usando SQL em VBA

    Mensagem  m_araujo em Sab 14 Maio 2016, 13:23

    Bom dia!

    Amigos, eu tenho uma consulta atualizável de estoque, funciona perfeitamente mais quero tira-la e inseria quando inserir um item no subformSaida.
    alguem poderia ajudar.

    Código:


    Private Sub btLancar_Click()

    On Error Resume Next

    DoCmd.GoToControl "SubItensSaida"
    DoCmd.GoToRecord , , acNewRec

    Forms!FrmSaidas!SubItensSaida!CodigoProduto = Me.txtCodigo
    Forms!FrmSaidas!SubItensSaida!DescricaoProduto = Me.txtDescricaoDe
    Forms!FrmSaidas!SubItensSaida!SiglaMedida = Me.txtMedida
    Forms!FrmSaidas!SubItensSaida!ValorReal = txtValorUnitario
    Forms!FrmSaidas!SubItensSaida!Descricao = TxtDeposito
    Forms!FrmSaidas!SubItensSaida!Quantidade = txtQuantidade
    Forms!FrmSaidas!SubItensSaida!TotalItes = txtValortotal

    txtCodigo = ""
    txtDescricaoDe = ""
    txtMedida = ""
    TxtDeposito = ""
    txtValorUnitario.Value = "R$ 0,00"
    txtQuantidade.Value = "0,00"
    txtValortotal.Value = "0,00"
    txtCodigo.SetFocus

    Forms!FrmSaidas!SubItensSaida!DocumentoSaida = Me.txtDocumentoSaida
    DoCmd.RunCommand acCmdSaveRecord

    '---------------------------------------------------------------------------------------------------------------------
    ' SQL da consulta atualizável
    '---------------------------------------------------------------------------------------------------------------------

    UPDATE tabProdutos, tabItensSaida SET tabProdutos.SaldoEstoque = [tabProdutos]![SaldoEstoque]-[Quantidade], tabItensSaida.Atualizado = Yes
    WHERE (((tabItensSaida.Atualizado)=No) AND ((tabProdutos.CodigoProduto)=[tabItensSaida]![CodigoProduto]));

    '-------------------------
               
          'Me.Undo
         
    Exit_Err_Excluir_Click1:
    Exit Sub
    Err_Excluir_Click1:
    'msg = MsgBox("Não se pode excluir um registro ainda inexistente !!!", vbOKOnly + vbQuestion, "Atencão")
    Resume Exit_Err_Excluir_Click1


    DoCmd.GoToControl "SubItensSaida"
    DoCmd.GoToRecord , , acNewRec

    Forms!FrmSaidas!SubItensSaida!CodigoProduto = Me.txtCodigo
    Forms!FrmSaidas!SubItensSaida!DescricaoProduto = Me.txtDescricaoDe
    Forms!FrmSaidas!SubItensSaida!SiglaMedida = Me.txtMedida
    Forms!FrmSaidas!SubItensSaida!ValorReal = txtValorUnitario
    Forms!FrmSaidas!SubItensSaida!Descricao = TxtDeposito
    Forms!FrmSaidas!SubItensSaida!Quantidade = txtQuantidade
    Forms!FrmSaidas!SubItensSaida!TotalItes = txtValortotal

    txtCodigo = ""
    txtDescricaoDe = ""
    txtMedida = ""
    TxtDeposito = ""
    txtValorUnitario.Value = "R$ 0,00"
    txtQuantidade.Value = "0,00"
    txtValortotal.Value = "0,00"
    txtCodigo.SetFocus
    Forms!FrmSaida!SubItensSaida!DocumentoSaida = Me.txtDocumentoSaida
    DoCmd.RunCommand acCmdSaveRecord


    Exit_Err_Excluir_Click:
    Exit Sub
    Err_Excluir_Click:
    'MSG = MsgBox("Não se pode excluir um registro ainda inexistente !!!", vbOKOnly + vbQuestion, "Atencão")
    Resume Exit_Err_Excluir_Click



    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: Usando SQL em VBA

    Mensagem  Dilson em Seg 16 Maio 2016, 16:48

    Pode tentar a instrução sql no evento após atualizar do campo quantidade do subformulario:

    currentdb.execute "UPDATE tabProdutos, tabItensSaida SET tabProdutos.SaldoEstoque = [tabProdutos]![SaldoEstoque]-[Quantidade], tabItensSaida.Atualizado = Yes
    WHERE (((tabItensSaida.Atualizado)=No) AND ((tabProdutos.CodigoProduto)=[tabItensSaida]![CodigoProduto]));"


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

      Data/hora atual: Qui 08 Dez 2016, 00:07