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


3 participantes

    [Resolvido]Baixa em estoque via VBA ou SQL.........

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 14/3/2013, 19:07

    Prezados colegas do fórum, saudações !

    Necessito de uma ajuda, vamos aos fatos:

    a- tenho um subformulário onde populo com as peças que estão sendo vendidas, faço isso através de uma combo (CodigoPeca). Subformulário continuo e com um botão para atualizar cada item que esta sendo incluído.
    b- tenho nesse subformulário um campo texto (qtdsaida).


    c- tenho uma tabela ( estoque ).
    campos da tabela estoque.
    c1- idEstoque-->cahve primária
    c2- idpeca-->número
    c3- codigopeca-->texto
    c4- Saldo-->número

    d- tenho um formulário, baseado na tabela estoque, onde entro com as quantidades das peças que o cliente compra.
    e- nesse formulário há um campo de saldo (caixa de texto, que recebe a soma a = QtdEntrada + saldo
    Me.saldo.Value = a .



    Bom, espero ter dado as informações mais importantes. Vamos a duvida em questão....

    f- como dar baixa nesse estoque ?
    g- qual a melhor maneira via vba ou sql ?

    Algumas tentativas ora feitas por mim, foram frustadas.

    Alguém pode me dar uma luz ?

    Grato


    .................................................................................
    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."
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Leandro 14/3/2013, 19:19

    Silvio, como vai?

    Olha, estou tendo ótimos resultados com Recordset em vários processos que tenho no meu BD.
    Te aconselho tentar com VBA usando o Recordset, como já citei.

    Porém, meu caso é um o seu é outro, como dizemos aqui no Paraná, mas estamos aqui pra ajudar.


    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 14/3/2013, 19:30

    Grande Leandro.

    Espero que tudo esteja bem contigo.

    Sim meu caro, cada caso é um caso.

    Peguei carona no exemplo do Piloto nesse link, aqui no fórum.

    Mas estou sofrendo um pouco, pois o mesmo não realiza a baixa, veja linha em sql que não faz a baixa:
    CurrentDb.Execute "UPDATE estoque SET estoque.saldo = estoque.saldo -" & Me.QtdSaida & "" _
    & " WHERE idestoque =" & Me.CodigoPeca & ";"


    .................................................................................
    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."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Alexandre Neves 14/3/2013, 19:41

    Boa noite, Sílvio
    1º Não entendi a razão de ter tantos campos de referência: idEstoque, idpeca e codigopeca. Bastava um deles ou estou errado?
    2º verifique o valor que é passado no código
    CurrentDb.Execute "UPDATE estoque SET saldo = saldo -" & Me.QtdSaida & " WHERE idestoque =" & Me.CodigoPeca & ";"
    veja que, neste código, refere-se ao idestoque como sendo similar ao CodigoPeca


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Leandro 14/3/2013, 19:46

    Silvio, eu não sou capacitado como o Piloto, ainda tenho um caminho longo, porém, trabalho com baixas da seguinte forma:

    Em meu controle de estoque montei um tabela de movimentações, nela adiciono tudo que acontece com os materiais, entradas, saídas, transferências, devoluções e etc.
    Quando faça uma retirada ou baixa, os cálculos são executados para aquela situação e só são adicionados quando saio do subform, ou seja quando a movimentação é concluída.

    Dê uma olhada:

    p.s. para esse controle de materiais ainda não tinha aplicado Recordsets.

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 14/3/2013, 19:51

    Boa noite Alexandre,

    vejamos meu caro amigo:

    c2- idpeca-->número------> numero digitado pelo usuário, podendo ser letras misturados com números ( 34xt45, ou 7t321 pois ele cadastrada o número fornecido pelo fabricante de autopeças)

    c3- codigopeca-->texto ---> erro meu de digitação por aqui, o correto é descrição peça.

    estou testando teu código Alexandre.


    .................................................................................
    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."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 14/3/2013, 20:08

    Alexandre e Leandro.

    Agradeço a ajuda de ambos. Montei um frank-código aqui !

    Vejam:

    ' by Piloto
    Dim QtdEst As Integer ' Variável para armazenar a quantidade em estoque da mercadoria

    ' Aqui carrego a variável com a quantidade no estoque, veja que filtro utilizando o codigopeca( combobox)
    QtdEst = DLookup("saldo", "estoque", "idpeca =" & Me.CodigoPeca & "")
    ' Aqui verifico se o estoque está zerado para o produto
    If QtdEst = 0 Then
    MsgBox "Produto.... zerado no estoque !!!"
    Exit Sub
    End If
    ' Aqui verifico se a quantidade que vai ser baixada existe no estoque, se for maior emite mensagem
    If QtdEst < Str(Me.QtdSaida) Then
    MsgBox "Estoque atual... menor que a quantidade solicitada !!" & Chr(10) & Chr(10) & "Estoque atual = " & QtdEst, vbInformation, "Atenção"
    Me.QtdSaida.SetFocus
    Exit Sub
    End If
    'Caso a quantidade do produto exista no estoque faz a atualização do campo na tabela
    ' by JPaulo
    DoCmd.SetWarnings False
    DoCmd.RunSQL "update estoque set saldo=saldo-Forms![OrdServico]![sfsaidapeca].Form![qtdsaida]" _
    & " where estoque.idpeca=Forms![ordservico]![sfsaidapeca].form![codigopeca]"
    DoCmd.SetWarnings True

    O mesmo está a funfar, se vocês dois, tiverem um código mais simples.....ficarei penhorado pela fidalguia de ambos.

    Abraços....

    Haja bem e paz para vocês.


    .................................................................................
    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."
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Leandro 14/3/2013, 20:31

    Silvio, a única coisa que saliento é, se for usado muitas vezes, como imagino qeu deve ser, use o Recordset no lugar da DLookup.
    Abraço

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 14/3/2013, 20:33

    Leandro,

    Sim, vai ser usado muitas vezes. Em média cada ordem de serviço tem pelo menos 5 itens a serem dado baixa.

    Pode você, me passar um exemplo ?

    Abraços a ti !


    .................................................................................
    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."
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Leandro 14/3/2013, 22:18

    Silvio, vou te passar como eu faria, mas tem outras formas.


    Dim dbPecas as DAO.DataBAse
    Dim rsPecas as DAO.Recordset
    Dim strPecas as String
    Dim QtdEst As Integer 'Variável para armazenar a quantidade em estoque da mercadoria

    strPecas = "Select... >Aqui você tem que colocar a SQL da consulta que você usa na DLookup, se não pegar a idéia manda aí que ajuda não falta.

    Set dbPecas = Currentdb()
    Set rsPecas = dbPecas.OpenRecordset(strPecas)

    'Aqui é onde se substitui a DLookup

    QtdEst = rsPecas("saldo")'saldo é o nome que eu deduzi que pudesse existir na consulta

    'a partir daqui você faz as condcionais como abaixo usando normalmente a variável QtdEst

    If...

    'Aqui esvaziamos as variáveis do Recordset

    dbPecas.Close
    Set dbPecas = Nothing
    rsPecas.Close
    Set rsPecas = Nothing

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 15/3/2013, 11:39

    Bom dia Leandro e aos demais que acompanham esse tópico.

    Não captei a logica da montagem da instrução.


    .................................................................................
    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."
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Leandro 15/3/2013, 12:16

    Silvio, se puder poste a consulta que você usa no DLookup.

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 15/3/2013, 13:16

    Leandro, veja a minha mensagem de número 7; é onde está o código completo.


    .................................................................................
    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."
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Leandro 15/3/2013, 13:47

    "Saldo" é uma consulta ou uma tabela?
    Se for consulta, preciso do código Sql.

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 15/3/2013, 13:58

    Leandro, saldo é um campo da tabela estoque.

    Eu não fiz nenhuma consulta. Fiz tudo na unha mesmo.

    Voltando ao campo da tabela saldo. Ele recebe a entrada de peças através do seguinte código:

    dim = a
    a = Qtdentrada + saldo
    me.saldo.value = a
    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Leandro 15/3/2013, 14:17

    Ah!... Então Estoque é uma tabela?

    Se for fica assim:

    Dim dbPecas as DAO.DataBAse
    Dim rsPecas as DAO.Recordset
    Dim strPecas as String
    Dim QtdEst As Integer 'Variável para armazenar a quantidade em estoque da mercadoria

    strPecas = "Select idpeca, Saldo FROM Estoque WHERE idpeca='" & Me!CodigoPeca & "'"

    Set dbPecas = Currentdb()
    Set rsPecas = dbPecas.OpenRecordset(strPecas)

    'Aqui é onde se substitui a DLookup

    QtdEst = rsPecas("saldo")'saldo é o nome que eu deduzi que pudesse existir na consulta

    'a partir daqui você faz as condcionais como abaixo usando normalmente a variável QtdEst

    If...

    'Aqui esvaziamos as variáveis do Recordset

    dbPecas.Close
    Set dbPecas = Nothing
    rsPecas.Close
    Set rsPecas = Nothing

    Leandro
    Leandro
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Leandro 15/3/2013, 14:43

    Silvio, esqueci de uma coisa, tem que ativar a Referência: Microsoft DAO 3.6 Object Library

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 15/3/2013, 16:59

    Boa tarde Leandro....

    Vou testar o mesmo aqui agora na parte da tarde/noite, pois tenho que atender a um cliente. Se não postar hoje ainda, com certeza na segunda de manhã, estarei lhe respondendo.

    Abraços.


    .................................................................................
    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."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Silvio 25/3/2013, 13:07

    Leandro, bom dia !!!


    Me perdoe a demora em lhe responder. Mas te digo............funfou legal !!

    Agradeço a ti e aos demais desse tópico !

    Abraços.


    .................................................................................
    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."

    Conteúdo patrocinado


    [Resolvido]Baixa em  estoque via VBA ou SQL......... Empty Re: [Resolvido]Baixa em estoque via VBA ou SQL.........

    Mensagem  Conteúdo patrocinado


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