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

    Como Refazer essa Macro

    avatar
    dan_cavalcante
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 6
    Registrado : 09/05/2017

    Como Refazer essa Macro Empty Como Refazer essa Macro

    Mensagem  dan_cavalcante 9/5/2017, 12:32

    Pessoal, bom dia!

    Criei um sistema de parcelamento, porém, quando eu clico no botão gerar parcelas pela segunda vez, ele recalcula e adiciona abaixo das parcelas que ja tinham sido geradas.

    Eu preciso fazer o seguinte, ao clicar no botão gerar parcelas, que ele delete o que ja foi calculado do registro atual e recalcule novamente, não duplicando no banco de dados.

    Como faço isso?

    o código que tenho é esse abaixo:

    Private Sub btn_GerarParcelas_Click()
      'CurrentDb.Execute "Delete*From Tbl_ContasAreceber" (esse código estava deletando todo o banco de dados)
       Set db = CurrentDb()
       Set rs = db.OpenRecordset("Tbl_ContasAreceber")
       Valor_Parcela = Me.txt_totalVendas / Me.QtdeParcelas
       
       For I = 1 To Me.QtdeParcelas
           rs.AddNew
           rs("Cod_TabVenda") = Me.CodVenda
           rs("Parcelas") = I & "/" & Me.QtdeParcelas
           rs("Valor_Parcela") = Valor_Parcela
           rs("Dt_Vencimento") = DateAdd("m", I - 1, Me.Dt_1Parcela)
           rs.Update
       Next
       rs.Close
       db.Close
       DoCmd.RunCommand acCmdSaveRecord
       Me.Tbl_ContasAreceber_subformulário.Requery
       'DoCmd.OpenReport "rel_Empréstimo", acViewPreview
                 
       
    End Sub
    wellingtoneo
    wellingtoneo
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 294
    Registrado : 30/07/2012

    Como Refazer essa Macro Empty Re: Como Refazer essa Macro

    Mensagem  wellingtoneo 9/5/2017, 20:15

    Olá, na parte que você comentou, tente colocar um Where com um campo de identificação única. Ex:

    'CurrentDb.Execute "Delete*From Tbl_ContasAreceber Where IdContasAreceber=" & SeuIdenteficador

    O importante é você saber se tem um identeficador exclusivo para deletar as parcelas geradas. Assim,
    a consulta apagar só os dados daquele registro e não, todo o banco.

    Qualquer coisa poste o Banco ai...

    Vlw
    avatar
    enio.eltz
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 63
    Registrado : 19/07/2016

    Como Refazer essa Macro Empty Re: Como Refazer essa Macro

    Mensagem  enio.eltz 9/5/2017, 21:21

    Olá

    Vamos ver se eu consigo ajudar também.
    Pelo que entendi, Cod_TabVenda é o campo da tabela que faz referência ao campo CodVenda. Então, você vai precisar saber qual é esse valor antes de executar o comando delete como o wellingtoneo instruiu. Eu precisei fazer um código que buscava o código automático do access e fiz assim:

    Código:
       Dim regAtual As Integer
        
        regAtual = Forms![NOME_DO_SEU_FORMULARIO_DE_VENDAS]![CodVenda] 'busca o CodVenda no formulário

    Aí entra o código informado pelo wellingtoneo:

    Código:
    CurrentDb.Execute "Delete * From Tbl_ContasAreceber Where Cod_TabVenda="' & regAtual '""

    As demais linhas do código continuam iguais. Todo o código ficaria assim:

    Código:
    Private Sub btn_GerarParcelas_Click()
    Dim regAtual As Integer
        
    regAtual = Forms![NOME_DO_SEU_FORMULARIO_DE_VENDAS]![CodVenda] 'busca o CodVenda no formulário
    CurrentDb.Execute "Delete * From Tbl_ContasAreceber Where Cod_TabVenda="' & regAtual '""

       Set db = CurrentDb()
       Set rs = db.OpenRecordset("Tbl_ContasAreceber")
       Valor_Parcela = Me.txt_totalVendas / Me.QtdeParcelas
      
       For I = 1 To Me.QtdeParcelas
           rs.AddNew
           rs("Cod_TabVenda") = Me.CodVenda
           rs("Parcelas") = I & "/" & Me.QtdeParcelas
           rs("Valor_Parcela") = Valor_Parcela
           rs("Dt_Vencimento") = DateAdd("m", I - 1, Me.Dt_1Parcela)
           rs.Update
       Next
       rs.Close
       db.Close
       DoCmd.RunCommand acCmdSaveRecord
       Me.Tbl_ContasAreceber_subformulário.Requery
       'DoCmd.OpenReport "rel_Empréstimo", acViewPreview
                  
      
    End Sub

    Testa aí. Se não funcionar, anexa o banco para a gente dar uma olhada.

    Abraço.

    Conteúdo patrocinado


    Como Refazer essa Macro Empty Re: Como Refazer essa Macro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 22:20