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]Loop dando erro

    Compartilhe

    braine
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    [Resolvido]Loop dando erro

    Mensagem  braine em Ter 25 Jul 2017, 19:12

    Quero quando Clicar em "Cancelar" ele exclua os lançamentos todos do ultimo para o primeiro. Utilizando o "Formexclusaoitem".

    Já o utilizo dando duplo Click para cancelar um a um do listbox. Funciona corretamente desfazendo os lançamentos.

    Já aqui ele da erro na opção em negrito abaixo. Se esperar alguns segundos ele continua normalmente.

    Private Sub Cancelar_Click()
    Dim Cancelar As Byte
    Dim itens As Byte
    Do While Cancelar < Me!TotalItens 'Será executado exatamente a quantia de itens da nota'
     
    DoCmd.OpenForm "formexclusaoiten", , , "NumeroItens =" & TotalItens
    Forms!formexclusaoiten.Visible = True 'mostra o formulário "formexclusaoiten"
    Forms!formexclusaoiten!Excluir.SetFocus

    'Diminui o item excluido
    itens = Forms!fornotafiscal!TotalItens - 1
    Forms!fornotafiscal!TotalItens = Null
    Forms!fornotafiscal!TotalItens = itens

      Cancelar = Cancelar + 1
    Loop
    End Sub

    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1170
    Registrado : 21/01/2012

    Re: [Resolvido]Loop dando erro

    Mensagem  Cláudio Más em Ter 25 Jul 2017, 21:50

    Manda o foco para o formulário, antes do botão Excluir:

    Forms!formexclusaoiten.SetFocus
    Forms!formexclusaoiten!Excluir.SetFocus

    braine
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Loop dando erro

    Mensagem  braine em Qua 26 Jul 2017, 14:44

    Funciona quando "Exclui" o 1º item, quando vai fazer o segundo para.

    Segue o formulário para você ver. Coloquei a "Exclusão" por "duplo Click", para excluir manualmente um a um e funciona corretamente.

    Se puder me ajudar agradeço.

    Formulario "ForNotaFiscal".

    Já tem 4 lançamentos, se Clicar em "Cancelar Nota"
    Anexos
    Formulario cancelar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (555 Kb) Baixado 3 vez(es)
    avatar
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1170
    Registrado : 21/01/2012

    Re: [Resolvido]Loop dando erro

    Mensagem  Cláudio Más em Qua 26 Jul 2017, 15:25

    Acho que toda a programação pode ser substituída pelas duas linhas abaixo:

    CurrentDb.Execute "Delete * From TabitensNota Where NotaFiscal = '" & Me!NotaFiscal & "'"
    Me!Lista.Requery

    braine
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Loop dando erro

    Mensagem  braine em Qua 26 Jul 2017, 17:07

    Sim apaga realmente, mas não desfaz as alterações que foram feitas na tabempenhoitens.
    E quando tiver vários empenhos pode acontecer de ter varias notas com o mesmo numero pois tem varias empresas que entregam produtos.

    Se tiver como guardar os valores em variaveis e atualizar os valores direto na tabempenhoitens conforme for atualizando excluindo, acho que daria certo.

    Só não sei como fazer
    avatar
    Cláudio Más
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1170
    Registrado : 21/01/2012

    Re: [Resolvido]Loop dando erro

    Mensagem  Cláudio Más em Qua 26 Jul 2017, 20:33

    Aí já são várias outras dúvidas, melhor dividir em mais posts para outros também poderem ajudar.

    braine
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]Loop dando erro

    Mensagem  braine em Seg 31 Jul 2017, 12:03

    Resolvido segue o Codigo abaixo como ficou do botão cancelar:

    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, 21:10