MaximoAccess

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

Obrigado

Administração do MaximoAccess

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


    [Resolvido]Controle de estoque

    avatar
    cicero de assis
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 02/04/2019

    [Resolvido]Controle de estoque Empty [Resolvido]Controle de estoque

    Mensagem  cicero de assis em 6/1/2020, 18:14

    estou criando um sistema de estoque com vendas, o sistema da baixa no estoque altomaticamente com esse codigo

    DoCmd.RunSQL "UPDATE Tlb_CadProd Set [Tlb_CadProd].[Quant] = [Tlb_CadProd].[Quant]- " & Me.Quantidade & " WHERE [Tlb_CadProd].[Código] = " & Me.Produtos.Column(0) & ""

    gostaria de que ao da baixa ele retorna-se para o estoque a quantidade.
    estou usando esse codigo porem nao esta dando certo.

    CurrentDb.Execute "UPDATE Tlb_CadProd SET Quant = " & (Quantidade + Quantidade) & " WHERE Quant = + 1 " & Código & ";"
    gostaria que voces min ajuda-se por favor
    Jungli
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 677
    Registrado : 07/05/2010

    [Resolvido]Controle de estoque Empty Re: [Resolvido]Controle de estoque

    Mensagem  Jungli em 6/1/2020, 18:52

    Boa tarce Cícero,

    Tente assim

    Dim QuantANT As Double 'Quantidade anterior no estoque
    Dim NovaQuant As Double 'Nova quantidade no estoque
    '// Popula a variável
       QuantANT = "": QuantANT = DLookup("[Quant]", "Tlb_CadProd", "[Código] = " & Me.Produtos.Column(0))
       NovaQuant = "": NovaQuant = (QuantANT - Nz(Me.Quantidade.Value, 0))
    '// Atualiza a tabela
       DoCmd.RunSQL "UPDATE Tlb_CadProd SET [Tlb_CadProd].[Quant]=" & NovaQuant & " WHERE [Tlb_CadProd].[Código]=" & Me.Produtos.Column(0) & ";"


    .................................................................................
    "Somos o que repetidamente fazemos.
    A excelência, portanto, não é um feito,
    mas um hábito."

    Aristóteles
    avatar
    cicero de assis
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 02/04/2019

    [Resolvido]Controle de estoque Empty Re: [Resolvido]Controle de estoque

    Mensagem  cicero de assis em 6/1/2020, 23:54

    por favor da uma olhada nesse pequeno sistema

    justamento na duvida que passei antes

    ao fazer a venda ele da baixa norma
    mais ao apagar a venda ele nao esta retornando o valor para o estoque



    https://www.dropbox.com/s/5tp776rxhioysv2/Recibo%20de%20Cliente.rar?dl=0


    Última edição por cicero de assis em 8/1/2020, 00:38, editado 1 vez(es) (Razão : novidades)
    Jungli
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 677
    Registrado : 07/05/2010

    [Resolvido]Controle de estoque Empty Re: [Resolvido]Controle de estoque

    Mensagem  Jungli em 7/1/2020, 20:24

    Oi, boa tarde,

    No código do botão cmdDelete_Click() em seu subformulário coloque:

    '// Atualiza o estoque do item selecionado
       DoCmd.RunSQL "UPDATE Tlb_CadProd Set [Quant]=[Quant]+" & Me.Quantidade.Value & " WHERE [Código]=" & Me.Produtos.Column(0) & ";"
    '// Apaga o registro na tabela Tbl_VendasDet referente ao codigo do produto selecionado
       DoCmd.RunSQL "DELETE  * FROM Tbl_VendasDet WHERE CodTabDet=" & Me.CodTabDet.Value & ";"
    '// Informa ao usuário
       MsgBox "Item retirado da lista com sucesso!", vbInformation, "Atenção"
    '// Atualiza o formulário
       Me.Requery

    No formulário Principal:

    No código do botão Btn_Excluir_Click() em seu formulário principal coloque:

    '// Questiona ao usuário sobre a exclusão do registro
       If MsgBox("Este procedimento irá excluir este registro definitivamente? ", vbYesNo + vbQuestion, "Aviso") = vbYes Then
    '       Se o usuário clicar em SIM

    '// //  Procedimentos para o subformulário
    '       // Loop na tabela de itens vendidos
              'Variáveis
              Dim RecVar As DAO.Recordset
              'Abre o recordset
              Set RecVar = CurrentDb.OpenRecordset("SELECT * FROM Tbl_VendasDet WHERE CodVendas=" & Me.CodVenda.Value)
              'Loop nos registros do recordset
              Dim i As Integer: i = 0
              For i = 0 To RecVar.RecordCount - 1
                   'Atualiza o estoque do item selecionado
                   DoCmd.RunSQL "UPDATE Tlb_CadProd Set Tlb_CadProd.[Quant] = Tlb_CadProd.[Quant] + " & RecVar.Fields("Quantidade") & " WHERE Tlb_CadProd.[Código]=" & RecVar.Fields("Produtos") & ";"
                   i = i + 1
              Next
              'Fecha o recordset e limpa a memória
              Set RecVar = Nothing: Close
    '       // Apaga os registros na tabela Tbl_VendasDet referentes ao codigo da venda atual
              DoCmd.RunSQL "DELETE  * FROM Tbl_VendasDet WHERE CodVendas=" & Me.CodVenda.Value & ";"
    '// //  Final dos procedimentos do sub formulário

    '// Formulário Principal
    '   Deverá apagar o registro principal ou seja a venda!
       DoCmd.RunCommand acCmdSelectRecord
       DoCmd.RunCommand acCmdDeleteRecord
       'Informa ao usuário
       MsgBox "Venda excluída com sucesso!", vbInformation, "Atenção"
       Else
           Exit Sub
       End If

    Até mais...


    .................................................................................
    "Somos o que repetidamente fazemos.
    A excelência, portanto, não é um feito,
    mas um hábito."

    Aristóteles
    avatar
    cicero de assis
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 02/04/2019

    [Resolvido]Controle de estoque Empty melhorias

    Mensagem  cicero de assis em 8/1/2020, 00:35

    boa noite meu amigo
    funcionou pore ele so retorna para o estoque a primeira linha

    no caso se for feito uma venda com varios produtos e depois deletar todo de uma so vez, o sistema so retorna a prmeira linha as outra fica zerados.
    Jungli
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 677
    Registrado : 07/05/2010

    [Resolvido]Controle de estoque Empty Re: [Resolvido]Controle de estoque

    Mensagem  Jungli em 8/1/2020, 21:52

    Oi, boa tarde,


    '>>>> Este código só apaga o item da linha clicada.
    No código do botão cmdDelete_Click() em seu subformulário coloque:


    '// Atualiza o estoque do item selecionado
      DoCmd.RunSQL "UPDATE Tlb_CadProd Set [Quant]=[Quant]+" & Me.Quantidade.Value & " WHERE [Código]=" & Me.Produtos.Column(0) & ";"
    '// Apaga o registro na tabela Tbl_VendasDet referente ao codigo do produto selecionado
      DoCmd.RunSQL "DELETE  * FROM Tbl_VendasDet WHERE CodTabDet=" & Me.CodTabDet.Value & ";"
    '// Informa ao usuário
      MsgBox "Item retirado da lista com sucesso!", vbInformation, "Atenção"
    '// Atualiza o formulário
      Me.Requery



    No formulário Principal: Frm_Vendas

    No código do botão Btn_Excluir_Click() em seu formulário principal coloque:


    '// Questiona ao usuário sobre a exclusão do registro
      If MsgBox("Este procedimento irá excluir este registro definitivamente? ", vbYesNo + vbQuestion, "Aviso") = vbYes Then
    '       Se o usuário clicar em SIM

    '// //  Procedimentos para o subformulário
    '       // Loop na tabela de itens vendidos
             'Variáveis
             Dim RecVar As DAO.Recordset
             'Abre o recordset
             Set RecVar = CurrentDb.OpenRecordset("SELECT * FROM Tbl_VendasDet WHERE CodVendas=" & Me.CodVenda.Value)
             'Loop nos registros do recordset
             Dim i As Integer: i = 0
             For i = 0 To RecVar.RecordCount - 1
                  'Atualiza o estoque do item selecionado
                  DoCmd.RunSQL "UPDATE Tlb_CadProd Set Tlb_CadProd.[Quant] = Tlb_CadProd.[Quant] + " & RecVar.Fields("Quantidade") & " WHERE Tlb_CadProd.[Código]=" & RecVar.Fields("Produtos") & ";"
                  i = i + 1
    RecVar.MoveNext
             Next
             'Fecha o recordset e limpa a memória
             Set RecVar = Nothing: Close
    '       // Apaga os registros na tabela Tbl_VendasDet referentes ao codigo da venda atual
             DoCmd.RunSQL "DELETE  * FROM Tbl_VendasDet WHERE CodVendas=" & Me.CodVenda.Value & ";"
    '// //  Final dos procedimentos do sub formulário

    '// Formulário Principal
    '   Deverá apagar o registro principal ou seja a venda!
      DoCmd.RunCommand acCmdSelectRecord
      DoCmd.RunCommand acCmdDeleteRecord
      'Informa ao usuário
      MsgBox "Venda excluída com sucesso!", vbInformation, "Atenção"
      Else
          Exit Sub
      End If

    Até mais...

    Funcionou corretamente aqui....


    .................................................................................
    "Somos o que repetidamente fazemos.
    A excelência, portanto, não é um feito,
    mas um hábito."

    Aristóteles
    avatar
    cicero de assis
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 02/04/2019

    [Resolvido]Controle de estoque Empty Controle de estoque

    Mensagem  cicero de assis em 9/1/2020, 11:24

    Bom dia comandante.
    o código funciona perfeito ele apaga a venda normalmente,  so que se for feito uma venda com vários item e depois apagar esta venda o código só retorna para o estoque o primeiro item da venda apagada.
    os outro item não retorna para o estoque.
    Jungli
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 677
    Registrado : 07/05/2010

    [Resolvido]Controle de estoque Empty Re: [Resolvido]Controle de estoque

    Mensagem  Jungli em 9/1/2020, 17:54

    Boa tarde cícero,

    use este código no botão excluir do frm_vendas

    Private Sub Btn_Excluir_Click()

    '// Desativa os avisos do sistema
    DoCmd.SetWarnings False
    '// Questiona ao usuário sobre a exclusão do registro
    If MsgBox("Este procedimento irá excluir este registro definitivamente? ", vbYesNo + vbQuestion, "Aviso") = vbYes Then
    ' Se o usuário clicar em SIM

    '// // Procedimentos para o subformulário
    ' // Loop na tabela de itens vendidos
    'Variáveis
    Dim RecV As DAO.Recordset
    'Abre o recordset
    Set RecV = CurrentDb.OpenRecordset("SELECT * FROM Tbl_VendasDet WHERE (((Tbl_VendasDet.CodVendas)=" & Int(Me.CodVenda.Value) & "));", dbOpenDynaset)
    'Loop nos registros do recordset
    While (Not RecV.EOF)
    'Atualiza o estoque do item selecionado
    Dim tSQL As String
    tSQL = "UPDATE Tlb_CadProd Set Tlb_CadProd.[Quant] = Tlb_CadProd.[Quant] + " & RecV.Fields("Quantidade") & " WHERE Tlb_CadProd.[Código]=" & RecV.Fields("Produtos") & ";"
    DoCmd.RunSQL tSQL
    Debug.Print RecV.Fields("Produtos")
    RecV.MoveNext
    Wend
    'Fecha o recordset e limpa a memória
    Set RecV = Nothing: Close
    ' // Apaga os registros na tabela Tbl_VendasDet referentes ao codigo da venda atual
    DoCmd.RunSQL "DELETE * FROM Tbl_VendasDet WHERE CodVendas=" & Me.CodVenda.Value & ";"
    '// // Final dos procedimentos do sub formulário

    '// Formulário Principal
    ' Deverá apagar o registro principal ou seja a venda!
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdDeleteRecord
    'Informa ao usuário
    MsgBox "Venda excluída com sucesso!", vbInformation, "Atenção"
    Else
    Exit Sub
    End If


    Refiz a estrutura do loop da tabela tbl_VendasDet,

    aqui funcionou certinho.


    .................................................................................
    "Somos o que repetidamente fazemos.
    A excelência, portanto, não é um feito,
    mas um hábito."

    Aristóteles
    avatar
    cicero de assis
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 02/04/2019

    [Resolvido]Controle de estoque Empty Re: [Resolvido]Controle de estoque

    Mensagem  cicero de assis em 10/1/2020, 12:05

    bom dia meu amigo
    foi solucionado o problema
    você e muito inteligente
    obrigo pela atenção.
    avatar
    cicero de assis
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 02/04/2019

    [Resolvido]Controle de estoque Empty Controle de estoque

    Mensagem  cicero de assis em 17/1/2020, 14:08

    bom dia meu amigo. como eu faco para ao finalizar uma venda a vista o sistema ja informar como venda quitada no modulo quitar parcela, no momento o sistema joga no modulo quitar parcela todas como pendente.
    Jungli
    Jungli
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 677
    Registrado : 07/05/2010

    [Resolvido]Controle de estoque Empty Re: [Resolvido]Controle de estoque

    Mensagem  Jungli em 17/1/2020, 18:25

    Oi boa tarde,

    não tenho mais o seu exemplo aqui, mas você pode tentar assim.

    no seu botão de finalizar venda coloque:

    'Atualiza informação do campo
    Dim tSQL As String
    tSQL = "UPDATE Tbl_Vendas Set Tbl_Vendas.[Quitar] = -1 WHERE Tbl_Vendas.[CodVenda]=" & Me.CodVenda.Value & ";"
    DoCmd.RunSQL tSQL


    PS: Ao aparecer uma nova dúvida, favor crie outro post pois este aqui já foi solucionado.

    Abraços.


    .................................................................................
    "Somos o que repetidamente fazemos.
    A excelência, portanto, não é um feito,
    mas um hábito."

    Aristóteles
    avatar
    cicero de assis
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 18
    Registrado : 02/04/2019

    [Resolvido]Controle de estoque Empty Controle de estoque

    Mensagem  cicero de assis em 17/1/2020, 19:34

    ok meu amigo

    abrie um novo tópico

    envie o link
    depois veja a questão que te passei anterior
    obrigado pela atenção

    Conteúdo patrocinado

    [Resolvido]Controle de estoque Empty Re: [Resolvido]Controle de estoque

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/2/2020, 05:45