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

    [Resolvido]Notificação de Estoque Zero

    BeaLeandra
    BeaLeandra
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 11/09/2016

    [Resolvido]Notificação de Estoque Zero Empty [Resolvido]Notificação de Estoque Zero

    Mensagem  BeaLeandra 27/9/2016, 01:24

    Boa noite Pessoal!

    Preciso muito da ajuda de vocês, tenho um formulário de nome Frm_Vendas e nele possui o campo "txtCodBarras" que tem um evento em alterar com o seguinte código:

    If Forms!Frm_Vendas!Frm_VendasDet!Produto.Column(3) = 0 Then
           MsgBox " Produto não possui no estoque", vbCritical, "Atenção"
    Me.txtCodBarras.value = Null

    End If


    Ele verifica se o produto selecionado tem no estoque, se for 0 tem que exibir a mensagem de que o produto não possui no estoque, porém identifiquei um erro ao testa-lo, pois toda vez que seleciono o primeiro produto ele não apresenta nenhuma mensagem, ele só apresenta quando eu vou selecionar a segundo produto, vale ressaltar que isso ocorre para todas as novas vendas efetuadas e que o produto selecionado na primeira vez é 0 em estoque.

    Preciso que seja mais eficiente, preciso que ele exiba a mensagem quando o meu produto zerado for o primeiro item.

    Estou enviando em anexo o BD

    Desde já, agradecida
    Anexos
    [Resolvido]Notificação de Estoque Zero AttachmentMaximoAccess.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (800 Kb) Baixado 38 vez(es)
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3913
    Registrado : 14/08/2013

    [Resolvido]Notificação de Estoque Zero Empty Re: [Resolvido]Notificação de Estoque Zero

    Mensagem  FabioPaes 27/9/2016, 02:31

    Ola, vamos la...

    Da forma como estava nao daria certo... No evento ao Alterar ocorreria problemas...


    Imagina so, tenho o Cod Barras 123 e 123456. Ao começar a digitar 1 ele automaticamente acharia que poderia ser qualquer um deles, e caso um estivesse sem estoque emitiria alerta...



    A solução que achei foi Colocar tudo no Evento Apos atualiza do Campo txtCodBarras.


    Apague todo o Comando que tem la no txtCodBarras e substitua por este:
    Código:
    Private Sub txtCodBarras_AfterUpdate()
    'Criei a Variavel que vai abrir o RecordSet para ver o estoque do produto
    Dim EstoqueA As DAO.Recordset

    If IsNull(DLookup("CodBarras", "tbl_cadprod", "CodBarras='" & Forms!Frm_Vendas!txtCodBarras & "'")) Then
    MsgBox "Produto Não Cadastro", vbInformation, "ATENÇÃO"
    Exit Sub
    End If
    'Aqui eu abro o Recordset (consulto o produto e comparo o estoque)
        'O valor do Estoque esta no Item EstoqueA("Estoque")
    Set EstoqueA = CurrentDb.OpenRecordset("SELECT tbl_CadProd.CodBarras, Cs_Estoque.Estoque FROM tbl_CadProd LEFT JOIN Cs_Estoque ON tbl_CadProd.CodBarras = Cs_Estoque.CodBarras " & _
    "WHERE tbl_CadProd.CodBarras = '" & Me.txtCodBarras & "'")
    'Aqui eu Verifico se esta Positivo...
    'Veja que mudei para <= para pegar estoque negativo... pois poderia omitir caso fosse =0
    If EstoqueA("Estoque") <= 0 Then
            'Emito Alerta e mostra o estoque atual e ainda Cancela a digitaçao.
            MsgBox " Produto não possui no estoque!!!" & vbNewLine & "  Estoque Atual: " & EstoqueA("Estoque"), vbCritical, "Atenção"
            Me.Undo
           
    Me.txtCodBarras.value = Null
    'Encerro as conexoes abertas e esvazio a Memoria
        'Movo o Foco para o CodBarras para agilizar a digitação.
    EstoqueA.Close
    Set EstoqueA = Nothing
    Me.txtdatahoje.SetFocus
    Me.txtCodBarras.SetFocus
    'Saio da Função para evitar ter que le todos os codigo ate o fim...
    Exit Sub
    End If

    'Caso o estoque seja Positivo, entao eu Encerro as Conexoes e limpo a memoria
    EstoqueA.Close
    Set EstoqueA = Nothing

    DoCmd.GoToControl "frm_vendasdet"
    DoCmd.GoToRecord , , acNewRec
    Forms!Frm_Vendas!Frm_VendasDet!Quantidade = Me.txtQtd 'Essa linha aqui que está atribuíndo a quantidade

    Forms!Frm_Vendas!txtproduto = DLookup("descricao", "tbl_cadprod", "CodBarras='" & Forms!Frm_Vendas!txtCodBarras & "'")
    Forms!Frm_Vendas!Frm_VendasDet!Produto = DLookup("CodBarras", "tbl_cadprod", "CodBarras='" & Forms!Frm_Vendas!txtCodBarras & "'")
    Forms!Frm_Vendas!Frm_VendasDet!ValorUnit.value = Forms!Frm_Vendas!Frm_VendasDet!Produto.Column(2)
    Forms!Frm_Vendas!txtCodBarras = ""
    Forms!Frm_Vendas!txtCodBarras.SetFocus
    Forms!Frm_Vendas!Frm_VendasDet!CodVendas = Me.CodVenda
    Me.txtQtd = 1

    End Sub

    Faça MUITOS TESTES ANTES!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3913
    Registrado : 14/08/2013

    [Resolvido]Notificação de Estoque Zero Empty Re: [Resolvido]Notificação de Estoque Zero

    Mensagem  FabioPaes 27/9/2016, 02:35

    Explicação do que foi feito:


    Como vc não armazena o Valor do estoque, entao tiremos que abrir uma consulta e verificar se aquele produto tem ou nao estoque...


    Dessa forma foi feito atraves de DAO.Recordset.


    Apos digitar o Cod Barras Realizo a consulta e vejo se tem ou nao estoque...

    Veja os comentários que vc entenderá o que foi feito...


    Mudei a formula de Estoque=0 para Estoque <=0. Pois imagina so:

    Tenho 2 no estoque... Porem o cliente quer 3. Na hora da Verificação irá passar, pois 2 é maior que 0.

    E seu estoque ficara negativo -1. Na proxima venda tambem irá passar pois 0 e diferente de -1. 

    Sendo assim <=0 pega tudo...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    BeaLeandra
    BeaLeandra
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 11/09/2016

    [Resolvido]Notificação de Estoque Zero Empty Re: [Resolvido]Notificação de Estoque Zero

    Mensagem  BeaLeandra 27/9/2016, 02:50

    FabioPaes, muito obrigada novamente bounce

    Me salvou de novo rs

    Grata pela explicação
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3913
    Registrado : 14/08/2013

    [Resolvido]Notificação de Estoque Zero Empty Re: [Resolvido]Notificação de Estoque Zero

    Mensagem  FabioPaes 27/9/2016, 03:46

    Bacana! Ate a Próxima se Deus quiser!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

      Data/hora atual: 17/4/2021, 17:42