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

    Atualizando somente 1 registro via vba

    Compartilhe

    alozs
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 07/02/2018

    Atualizando somente 1 registro via vba

    Mensagem  alozs em 19/11/2018, 15:10

    Boa tarde galera, estou quebrando a cabeça aqui para tentar resolver um problema, seguinte, tenho um sistema de assistência técnica onde quando eu gero a ordem de serviço e eu adiciono produtos na OS para gerar o orçamento com o valor e itens que serão utilizados, ele não subtrai do meu estoque, criei um campo em minha tabela escrito "itens orçamento" ele calcula os valores na hora de gerar a OS porem não subtrai do meu estoque porem eu coloquei uma condição via vba, se caso eu mude o status da OS para "FATURADO" ele salva o valor que está no campo "itens orçamento" para o campo na tabela onde irá subtrair os itens do estoque, até ai tudo bem funcionou bem com o código abaixo 

        If Me.Status = "Faturado" Then
        Form_FRM_SERVICOS_SUB.quantidade.Value = Form_FRM_SERVICOS_SUB.qtdorcamento.Value
        Else
        Form_FRM_SERVICOS_SUB.quantidade.Value = 0 
        End If

    porem quando eu altero no formulário e salvo ele modifica somente o primeiro 1º item na tabela e os demais não, a não ser que eu modifique manualmente todos os itens e salvo alguém tem alguma dica do que posso fazer para resolver isso?!
    Crying or Very sad
    avatar
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 332
    Registrado : 23/01/2017

    Re: Atualizando somente 1 registro via vba

    Mensagem  thiagomcosta em 19/11/2018, 16:05

    Para facilitar que lhe respondam, coloque parte do BD como exemplo, facilita na hora de lhe retornar uma resposta.

    alozs
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 07/02/2018

    Re: Atualizando somente 1 registro via vba

    Mensagem  alozs em 19/11/2018, 18:18

    segue o BD

    [Você precisa estar registrado e conectado para ver este link.]

    para entender como funciona, precisar ir no formulário "FRM_SERVICOS" lá vc pode selecionar o cliente, técnico, carro e etc, clica em salvar e depois clica em editar para habilitar o campo onde insere os produtos utilizados, para visualizar o estoque precisa ir na tabela "tblEstoque" e tabela que gerencia as entradas (compras) e saídas (vendas) é a "tblMovimentacao"
    avatar
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 332
    Registrado : 23/01/2017

    Re: Atualizando somente 1 registro via vba

    Mensagem  thiagomcosta em 20/11/2018, 10:27

    Andei dando uma olhada no seu banco.
    Dei uma pesquisada para ver se resolvia com FOR EACH/NEXT, porém não consegui achar resposta.
    Pensei em um looping que passasse por cada registro do subformulário e então rodasse o código, porém não sei como fazer e nas minhas pesquisas não achei resposta.

    Se, por acaso, eu achar algo aqui eu volto para dar uma resposta.

    alozs
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 07/02/2018

    Re: Atualizando somente 1 registro via vba

    Mensagem  alozs em 21/11/2018, 22:30

    blz obg por tentar.
    vamos aguardar, enquanto isso deixei um campo para inserir quando é orçamento
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 01/08/2011

    Re: Atualizando somente 1 registro via vba

    Mensagem  ronaldojr1 em 22/11/2018, 14:12

    bom dia
    ate consegui fazer o que vc pretendes, fiz mais ou menos como nosso amigo
    thiagomcosta sugeriu. criei um loop que percorre pelos itens e conforme o codigo le o item
    ele ja atualiza na tblEstoque.
    aproveitei para criar uma macro que apos atualizar o registro ela ja faz as contas de entrada - saida e joga o resultado no campo estoque

    o codigo esta no modulo "mod_atualizaEstoque"
    para usar basta chamar a funcao no formulario

    atualizaEstoque(id_servico)

    segue link do bd
    [Você precisa estar registrado e conectado para ver este link.]

    em anexo segue print da construção da macro

    o que vc pode ter problema é se o usuario salvar duas vezes a mesma ordem de serviço.
    ai para controlar vc pode criar um campos do tipo sim e nao. com isso vc pode usar para saber se o produto ja foi ou nao atualizado
    na tabela de estoque
    ou
    mudar o codigo para varrer a tabela inteira de movimentacao ao inves de procurar apenas por 1 ordem de serviço.
    qualquer duvida estamos ai

    abraço
    Anexos
    macro.bmp
    Você não tem permissão para fazer download dos arquivos anexados.
    (290 Kb) Baixado 3 vez(es)

    alozs
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 07/02/2018

    Re: Atualizando somente 1 registro via vba

    Mensagem  alozs em 4/12/2018, 16:26

    olá amigos, gostaria muito de agradecer a ajuda, mais visando o tempo que tenho para terminar de desenvolver ele, acabei deixando um campo extra para inserir quando é orçamento, ficou bom e bem prático, porem me esbarrei em outro problema agora....rs
    quando clico em salvar preciso que um campo onde calcula os valores da ordem de serviço copie para outro campo quando eu marcar a opção "faturado" fiz o procedimento padrão de pegar o valor de uma caixa e passar para outra (value) porem quando eu clico em salvar fica zerado o valor, quando eu clico de novo dá certo, acho que como o código executa mais rápido que a conta ele acaba pegando o valor zerado primeiro, ou seja precisa clicar 2x no botão salvar para passar o números, alguém sabe como resolver isso?

    esse é o codigo

    If Me.Status = "Faturado" Then
        vendaliquidocaixa.Value = txtTotalPagar.Value
    End If
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 01/08/2011

    Re: Atualizando somente 1 registro via vba

    Mensagem  ronaldojr1 em 6/12/2018, 14:25

    boa tarde
    manda o seu bd atualizado para olharmos esse comportamento estranho.
    ai fica mais fácil de mandar uma solução.

    grato

      Data/hora atual: 16/12/2018, 11:23