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


4 participantes

    [Resolvido]Atualização de Estoque Manual.

    Samuel Ribeiro
    Samuel Ribeiro
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 584
    Registrado : 05/02/2011

    [Resolvido]Atualização de Estoque Manual. Empty Atualização de Estoque Manual.

    Mensagem  Samuel Ribeiro 4/10/2013, 15:53

    Bom dia

    Tenho um formulário onde o Usuário entrara com uma quantidade de produto, e esta quantidade substituirá a quantidade no estoque, Quanta a entrada via NF de compra e a siada por vendas sera outro Código, mas pelo que posso ver este código também serve para Entrada e saída como dito anteriormente, este código eu peguei neste fórum

    Código:
    On Error Resume Next
    'Se for verdadeiro, pergunta ao usuário se ele deseja atualizar a quantidade do produto no estoque.
    If MsgBox("Deseja atualizar a quantidade deste produto no estoque?", vbYesNo, "Aviso") = vbYes Then
    'Se o usuário não entrar com um valor ou se o valor for o (zero), o Sistema emite uma mensagem.
    If IsNull(Me.TxtSaida) Or Me.TxtSaida = 0 Then
    MsgBox "Informe a quantidade de vendida no estoque!", vbCritical + vbOKOnly, "Atenção!"
    Me.TxtSaida.SetFocus
    Exit Sub
    End If
    'Declara nova variável (cnn) de conexão pelo sistema ADO
    Dim cnn As New ADODB.Connection
    'Declara variável rs1 para os registros
    Dim rs1 As ADODB.Recordset
    Dim rs2 As ADODB.Recordset
    'Abre a conexão com o banco
    Set cnn = CurrentProject.Connection
    'Abre a conexão com o registro
    Set rs1 = New ADODB.Recordset
    rs1.CursorType = adOpenKeyset
    rs1.LockType = adLockOptimistic
    'Abre a Tabela_Produtos
    rs1.Open "TblProduto", cnn, , , adCmdTable
    'Procura e compara código do produto entre as tabelas Produtos e a tabela de itens.
    rs1.Find "Produto_Nome=" & Me.TxtNome, 0, adSearchForward, 1
    If Not rs1.EOF Then
    'Diminui a quantidade de itens que saiu naquele momento ao estoque. (Compra)
    rs1("Produto_Estoque") = rs1("Produto_Estoque") - Me.TxtSaida
    rs2("Produto_Valor") = Me.TxtValor
    'Verifica se o estoque é menor do que 0 (zero)
    If rs1("Produto_Estoque") < 0 Then
    'Se for, emite mensagem ao usuário
    MsgBox "Quantidade não disponível. Saldo atual em estoque de " & rs1("Produto_Estoque") + Me.TxtSaida & " produtos", vbCritical, "Atenção!"
    Cancel = True
    Me.TxtSaida = Null
    Me.TxtSaida.SetFocus
    Else
    'Verifica se o estoque atual é menor do que o estoque mímino
    If rs1("Produto_Estoque") < rs1("Produto_Nivel") Then
    ' Se for, emite mensagem avisando ao usuário que deve pedir deste produto ao fornecedor
    MsgBox "Estoque atual abaixo do estoque mínimo. Pedir no mínimo " & rs1("Produto_Nivel") - rs1("Estoque") & " produtos(s)", vbExclamation, "Atenção!"
    'Atualiza a tabela de estoques
    Cancel = True
    Me.TxtSaida = Null
    Me.TxtSaida.SetFocus
    Else
    rs1.Update
    'Emite uma mensagem informando a quantidade atual no estoque.
    MsgBox "Quantidade atual disponível de " & rs1("Produto_Estoque") & " produtos", vbExclamation, "Atenção!"
    Me.TxtSaida = Null
    Me.TxtSaida.SetFocus
    End If
    End If
    End If
    'Fecha a conexão com o banco
    Set cnn = Nothing
    'Fecha a conexão com o registro
    Set rs1 = Nothing
    Else
    End If
    End Sub
    :
    Se Alguém puder me ajudar eu agradeço.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Jungli 4/10/2013, 17:21

    Boa tarde,
    você pode postar parte do seu banco de dados referente a movimentação de estoque, para que possamos continuar.
    Samuel Ribeiro
    Samuel Ribeiro
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 584
    Registrado : 05/02/2011

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Samuel Ribeiro 4/10/2013, 17:55

    Boa Tarde JUNGLI

    Segue em anexo parte do banco de dados que movimentam o estoque.
    Desde ja agradeço o retorno e a ajuda.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Jungli 4/10/2013, 23:53

    Boa Noite Samuel, não sei se entendi direito, mas fiz modificações no formulário: Baixa de Estoque, qualquer coisa, estamos aqui.
    Anexos
    [Resolvido]Atualização de Estoque Manual. AttachmentSiscom.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (994 Kb) Baixado 74 vez(es)
    Samuel Ribeiro
    Samuel Ribeiro
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 584
    Registrado : 05/02/2011

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Samuel Ribeiro 5/10/2013, 14:13

    Bom dia JUNGLI

    O código parece certo parcialmente, faço as modificações no formulário seleciono o código do produto, informo o novo estoque e na hora de confirmar ele me da aquela mensagem de "Selecione o código produto e informe o Novo Estoque", e não altera quantidade do estoque.
    Veja o código como ficou:

    Código:
    Private Sub btnConfirmarEstNovo_Click()
    On Error Resume Next
        If IsNull(Me.cmbCodSisPro.Column(0)) Or Me.cmbCodSisPro.Column(0) Or IsNull(Me.txtNovoEstoque.Value) Or Me.txtNovoEstoque.Value = "" Then
        MsgBox "Selecione o Código do Produto  e Informe o novo Estoque!", vbCritical + vbOKOnly, "Sistema de Automação Comercial - Atenção!"
        Me.txtNovoEstoque.SetFocus
       
        Exit Sub
        End If
       
        Dim RS1 As DAO.Recordset
        Set RS1 = CurrentDb.OpenRecordset("Select Estoque_Pro.From tblProdutos Where CodSis_Pro = " & Me.cmbCodSisPro.Column(0), dbOpenDynaset)
      RS1.Edit
      RS1![Estoque_Pro] = Me.txtEstoqueAtual.Value
      RS1.Update
      MsgBox "Estoque Atualizado com Sucesso", vbInformation + vbOKOnly, "Sistema de Automação Comercial - Informação"
      Me.txtNovoEstoque = ""
      Set RS1 = Nothing: Close
      Call cmbCodSisPro_AfterUpdate
      Exit Sub
    End Sub
    Desde ja Agradeço.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Jungli 6/10/2013, 00:59

    boa noite Samuel,

    com relação ao código, a única diferença que vi foi o ponto (.) antes do FROM

    Private Sub btnConfirmarEstNovo_Click()

    'On Error Resume Next

       If IsNull(Me.cmbCodSisPro.Column(0)) Or Me.cmbCodSisPro.Column(0) Or  IsNull(Me.txtNovoEstoque.Value) Or Me.txtNovoEstoque.Value = "" Then
       MsgBox "Selecione o Código do Produto  e Informe o novo Estoque!", vbCritical + vbOKOnly, "Sistema de Automação Comercial - Atenção!"
       Me.txtNovoEstoque.SetFocus
     
       Exit Sub
       End If
     
       Dim RS1 As DAO.Recordset

    '  Set RS1 = CurrentDb.OpenRecordset("Select Estoque_Pro.From tblProdutos ...
       Set RS1 = CurrentDb.OpenRecordset("SELECT Estoque_Pro FROM tblProdutos WHERE CodSis_Pro = " & Me.cmbCodSisPro.Column(0), dbOpenDynaset)
     RS1.Edit
     RS1![Estoque_Pro] = Me.txtEstoqueAtual.Value
     RS1.Update
     MsgBox "Estoque Atualizado com Sucesso", vbInformation + vbOKOnly, "Sistema de Automação Comercial - Informação"
     Me.txtNovoEstoque = ""
     Set RS1 = Nothing: Close
     Call cmbCodSisPro_AfterUpdate
     Exit Sub
    End Sub


    Dê uma olhada no SQL do campo cmbCodSisPro, pois a mensagem aparece quando não existe nada na primeira coluna da mesma ou seja não está encontrando nenhum código.
    Samuel Ribeiro
    Samuel Ribeiro
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 584
    Registrado : 05/02/2011

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Samuel Ribeiro 7/10/2013, 13:03

    Bom dia JUNGLE

    Não mudou nada, tirei o ponto e ainda continua me enviando a mensagem e não registra a alteração.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro
    Jungli
    Jungli
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Jungli 7/10/2013, 17:46

    Boa tarde,

    tente assim:


    If IsNull(Me.cmbCodSisPro.Column(0)) or Me.cmbCodSisPro.Column(0)="" Then

    MsgBox "Selecione o Código do Produto e Informe o novo Estoque!", vbCritical + vbOKOnly, "Sistema de Automação Comercial - Atenção!"
    Me.txtNovoEstoque.SetFocus
    Exit Sub

    End If

    Dim Rs1 As DAO.Recordset

    ' Set Rs1 = CurrentDb.OpenRecordset("Select Estoque_Pro.From tblProdutos ...
    Set Rs1 = CurrentDb.OpenRecordset("SELECT Estoque_Pro FROM tblProdutos WHERE CodSis_Pro = " & Me.cmbCodSisPro.Column(0), dbOpenDynaset)
    Rs1.Edit
    Rs1![Estoque_Pro] = Me.txtEstoqueAtual.Value
    Rs1.Update
    MsgBox "Estoque Atualizado com Sucesso", vbInformation + vbOKOnly, "Sistema de Automação Comercial - Informação"
    Me.txtNovoEstoque = ""
    Set Rs1 = Nothing: Close
    Call cmbCodSisPro_AfterUpdate
    Exit Sub
    End Sub

    se não der certo podes anexar a parte do db que dou uma olhada ...
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Luiz Carlos Junior 7/10/2013, 18:07

    Fala galera, blz?

    Fui bisbilhotar e percebi que faltava um (= "") no código onde verifica se os valores da combo eram nulos ou em branco.
    Aletrei isso e funfou perfeitamente.
    Ficou assim:

    Código:
    Private Sub btnConfirmarEstNovo_Click()
    '// Verifica se os campos obrigatórios estão nulos
    If IsNull(Me.cmbCodSisPro.Column(0)) Or _
                     Me.cmbCodSisPro.Column(0) = "" Or _
                     IsNull(Me.txtNovoEstoque.Value) Or _
                     Me.txtNovoEstoque.Value = "" Then MsgBox "Selecione um produto e informe a nova quantidade e tente novamente. ", vbInformation, "Informação": Exit Sub
    '// Variáveis
        Dim rs As DAO.Recordset
    '// Abre o recordset pelo produto selecionado na combobox  "cmbCodSisPro"
        Set rs = CurrentDb.OpenRecordset("Select Estoque_Pro From tblProdutos Where CodSis_Pro=" & Me.cmbCodSisPro.Column(0), dbOpenDynaset)
        rs.Edit 'Coloca a tabela em modo de edição
        rs![Estoque_Pro] = Me.txtNovoEstoque.Value 'Atualiza o valor do campo
        rs.Update 'Salva a modificação
    '// Informa ao usuário
        MsgBox "atualizado", vbInformation, "Informação"
    '// Limpa o campo Novo Estoque
        Me.txtNovoEstoque = ""
    '// fecha o recordset e limpa a memória
        Set rs = Nothing: Close
    '// Atualiza as informações no formulário
        Call cmbCodSisPro_AfterUpdate
    '// Encerra a sub definitivamente
        Exit Sub
    End Sub
    Veja se era isso mesmo.

    Abrasss!!!
    Samuel Ribeiro
    Samuel Ribeiro
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 584
    Registrado : 05/02/2011

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Samuel Ribeiro 7/10/2013, 19:47

    boa tarde Luiz Carlos Junior e JUNGLE.

    depois de fazer a correção que o Luiz cCarlos Postou, de a mensagem de estoque atualizado, só que a quantidade de estoque na tabela não foi alterada.


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Luiz Carlos Junior 7/10/2013, 20:01

    Fiz a alteração que havia dito e funcionou normalmente.

    Segue.

    Abrasss!!!
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Silvio 7/10/2013, 20:16

    Boa tarde....apenas dando um pitaquinho ( sem testar aqui )

    esta assim:

    Set rs = CurrentDb.OpenRecordset("Select Estoque_Pro From tblProdutos Where CodSis_Pro=" & Me.cmbCodSisPro.Column(0), dbOpenDynaset)

    tente assim...

    Set rs = CurrentDb.OpenRecordset("Select Estoque_Pro From tblProdutos Where CodSis_Pro=" & Me.cmbCodSisPro.Column(0))


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Samuel Ribeiro
    Samuel Ribeiro
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 584
    Registrado : 05/02/2011

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Samuel Ribeiro 7/10/2013, 20:29

    Ok Pessoal, Funcionou norma agora.

    Muito obrigado ao JUNGLE, ao Luiz Carlos e ao Silvio pela grande ajuda.

    Veja como Ficou o código:
    Código:
    Private Sub btnConfirmarEstNovo_Click()
    '// Verifica se os campos obrigatórios estão nulos
    If IsNull(Me.cmbCodSisPro.Column(0)) Or _
                    Me.cmbCodSisPro.Column(0) = "" Or _
                    IsNull(Me.txtNovoEstoque.Value) Or _
                    Me.txtNovoEstoque.Value = "" Then MsgBox "Selecione o código do produto e informe a nova quantidade e tente novamente. ", vbInformation, "Informação": Exit Sub
    '// Variáveis
        Dim rs As DAO.Recordset
    '// Abre o recordset pelo produto selecionado na combobox  "cmbCodSisPro"
        Set rs = CurrentDb.OpenRecordset("Select Estoque_Pro From tblProdutos Where CodSis_Pro=" & Me.cmbCodSisPro.Column(0), dbOpenDynaset)
        rs.Edit 'Coloca a tabela em modo de edição
        rs![Estoque_Pro] = Me.txtNovoEstoque.Value 'Atualiza o valor do campo
        rs.Update 'Salva a modificação
    '// Informa ao usuário
        MsgBox "Estoque atualizado com sucesso", vbInformation + vbOKOnly, "Sistema de Automação Comercial - Informação"
    '// Limpa o campo Novo Estoque
        Me.txtNovoEstoque = ""
    '// fecha o recordset e limpa a memória
        Set rs = Nothing: Close
    '// Atualiza as informações no formulário
        Call cmbCodSisPro_AfterUpdate
    '// Encerra a sub definitivamente
        Exit Sub
    End Sub


    .................................................................................
    ______________________________
         Samuel Carlos Ribeiro
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Luiz Carlos Junior 7/10/2013, 20:32

    cheers cheers cheers 

    Boa.

    Abrasss!!!

    Conteúdo patrocinado


    [Resolvido]Atualização de Estoque Manual. Empty Re: [Resolvido]Atualização de Estoque Manual.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 20:05