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]Variáveis Dim com problemas

    Compartilhe

    braine
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 67
    Registrado : 16/01/2014

    [Resolvido]Variáveis Dim com problemas

    Mensagem  braine em Sex 28 Jul 2017, 13:31

    Estou usando as Variaveis Dim dentro do Loop. E quando usa o Loop os valores do Dim parece que acumulam.
    O código e para desfazer as alterações de lançamentos efetuados. Pega o Total de itens digamos "4", cada nota da nota recebeu um numero 1,2,3 e 4. Cada Loop pega pega o total de itens - 1. Até chegar o Total Itens = 0.

    Se tiver um unico Item efetua o calculo corretamente. 100 unidades, desfaz as 100 unidades. Se tiver digamos 2 ou mais tira 3 vezes o valor.

    Se puderem ajudar agradeço

    Codigo abaixo:



    Do Until Me!TotalItens = 0

    Dim ent As Integer
    Dim aen As Integer
    Dim val As Integer
    Dim Itens As Byte

    DoCmd.Requery

    ent = Forms!fornotafiscal!ConsAcertoEmpenho.Form!entregue.Value
    aen = Forms!fornotafiscal!ConsAcertoEmpenho.Form!Aentregar.Value
    val = Forms!fornotafiscal!ConsAcertoEmpenho.Form!valorentregue.Value

    'Atualiza os campos "Entregue", "AEntregar" e "ValorEntregue"
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!entregue = Null 'limpa o campo Entregue
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!entregue = ent - Forms!fornotafiscal!ConsItenExclusao!entregue 'Atualiza o valor Entregue

    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Aentregar = Null 'limpa o campo Aentregar
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Aentregar = aen + Forms!fornotafiscal!ConsItenExclusao!entregue 'Atualiza o valor Aentregar

    Forms!fornotafiscal!ConsAcertoEmpenho.Form!valorentregue = Null 'limpa o campo Valor Entregue
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!valorentregue = Forms!fornotafiscal!ConsAcertoEmpenho!entregue * Forms!fornotafiscal!ConsItenExclusao!PrecoUnitario 'Atualiza o Valor Entregue

    DoCmd.Requery

    'Atualiza o Status da mercadoria
    Select Case Forms!fornotafiscal!ConsAcertoEmpenho.Form!entregue.Value
    Case Is = 0
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Status.Value = "Não Entregue"

    Case Is = Forms!fornotafiscal!ConsAcertoEmpenho.Form!Quantidade.Value
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Status.Value = "Entregue"

    Case Is < Forms!fornotafiscal!ConsAcertoEmpenho.Form!Quantidade.Value
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Status.Value = "Parcial"
    DoCmd.Requery

    Itens = Forms!fornotafiscal!TotalItens - 1
    Forms!fornotafiscal!TotalItens = Null
    Forms!fornotafiscal!TotalItens = Itens

    End Select


    Loop
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Variáveis Dim com problemas

    Mensagem  Alexandre Neves em Sex 28 Jul 2017, 22:55

    Boa noite,
    E funciona com a criação das variáveis dentro do ciclo?
    Coloque a criação das variáveis fora do ciclo


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

    braine
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 67
    Registrado : 16/01/2014

    Re: [Resolvido]Variáveis Dim com problemas

    Mensagem  braine em Seg 31 Jul 2017, 12:02

    Obrigado!!! Esta funcionando que uma maravilha, tirei a as variaves de dentro do loop, e também tirei um Requery.



    Dim entr As Integer
    Dim aen As Integer
    Dim val As Integer
    Dim Itens As Byte

    Do Until Me!TotalItens = 0

    DoCmd.Requery

    entr = Forms!fornotafiscal!ConsAcertoEmpenho.Form!entregue.Value - Forms!fornotafiscal!ConsItenExclusao.Form!entregue.Value
    aen = Forms!fornotafiscal!ConsAcertoEmpenho.Form!Aentregar.Value
    val = Forms!fornotafiscal!ConsAcertoEmpenho.Form!valorentregue.Value

    'Atualiza os campos "Entregue", "AEntregar" e "ValorEntregue"
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!entregue = Null 'limpa o campo Entregue
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!entregue = entr ' - Forms!fornotafiscal!ConsItenExclusao!entregue 'Atualiza o valor Entregue

    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Aentregar = Null 'limpa o campo Aentregar
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Aentregar = aen + Forms!fornotafiscal!ConsItenExclusao!entregue 'Atualiza o valor Aentregar

    Forms!fornotafiscal!ConsAcertoEmpenho.Form!valorentregue = Null 'limpa o campo Valor Entregue
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!valorentregue = Forms!fornotafiscal!ConsAcertoEmpenho!entregue * Forms!fornotafiscal!ConsItenExclusao!PrecoUnitario 'Atualiza o Valor Entregue

    'Atualiza o Status da mercadoria
    Select Case Forms!fornotafiscal!ConsAcertoEmpenho.Form!entregue.Value
    Case Is = 0
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Status.Value = "Não Entregue"

    Case Is = Forms!fornotafiscal!ConsAcertoEmpenho.Form!Quantidade.Value
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Status.Value = "Entregue"

    Case Is < Forms!fornotafiscal!ConsAcertoEmpenho.Form!Quantidade.Value
    Forms!fornotafiscal!ConsAcertoEmpenho.Form!Status.Value = "Parcial"

    End Select

    Itens = Forms!fornotafiscal!TotalItens - 1
    Forms!fornotafiscal!TotalItens = Null
    Forms!fornotafiscal!TotalItens = Itens

    DoCmd.Requery
    Loop

    End Sub

      Data/hora atual: Ter 21 Nov 2017, 17:37