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

    [Resolvido]Lançamentos duplicados nas tabelas

    avatar
    Dina.azevedo
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 23
    Registrado : 05/08/2016

    [Resolvido]Lançamentos duplicados nas tabelas Empty [Resolvido]Lançamentos duplicados nas tabelas

    Mensagem  Dina.azevedo Qui 18 Maio 2017, 13:43

    Boa tarde!

    tenho a programação abaixo para que de um formulário seja salvo em três tabelas.

    Acontece que alguns lançamentos estão sendo duplicados, quando faço a alteração em um já gravado, ele duplica o lançamento.

    Como faço para isso não ocorrer?

    Private Sub Btn_Alterar_Click()

    Dim db As Database
    Dim rs As Recordset

    Set db = CurrentDb

    Set rs = db.OpenRecordset("SELECT * fROM Tb_Movimento_Caixa WHERE IDCaixa = " & IDCaixa & "")

    rs.Edit

    rs("Empresa") = Me.txtempresa
    rs("Fornecedor") = Me.txtfornecedor
    rs("Histórico") = Me.txthistórico
    rs("Data_Pagamento") = Me.txtData_pagto
    rs("Tipo") = Me.Tipo
    rs("ClassifcDebito") = Me.txtClassifcDebito
    rs("ClassificCredito") = Me.txtcalssificação_credito
    rs("Crédito") = Me.txtcredito
    rs("Centrodecustos") = Me.txtxCentrodeCusto

    rs.Update
    rs.Close


    Set rs = db.OpenRecordset("SELECT * fROM Tb_Conta_Corrente WHERE IDCaixa = " & IDCaixa & "")

    rs.Edit

    rs("Empresa") = Me.txtempresa
    rs("Histórico") = Me.txthistórico
    rs("Data_Pagamento") = Me.txtData_pagto
    rs("ClassifcDebito") = Me.txtClassifcDebito
    rs("Crédito") = Me.txtcredito
    rs("IDCaixa") = Me.IDCaixa
    rs("Tipo") = Me.Tipo

    rs.Update
    rs.Close

    Set rs = db.OpenRecordset("SELECT * fROM Tbl_Resultado WHERE IDCaixa = " & IDCaixa & "")

    rs.Edit

    rs("IDCaixa") = Me.IDCaixa
    rs("Empresa") = Me.txtempresa
    rs("Histórico") = Me.txthistórico
    rs("Data_Pagamento") = Me.txtData_pagto
    rs("ClassificCrédito") = Me.txtcalssificação_credito
    rs("Crédito") = Me.txtcredito
    rs("IDCaixa") = Me.IDCaixa
    rs("Tipo") = Me.Tipo
    rs("Centrodecustos") = Me.txtxCentrodeCusto

    rs.Update
    rs.Close
    db.Close

    NOVO.enabled = False
    Btn_Alterar.enabled = False
    Primeiro.enabled = False
    anterior.enabled = False
    proximo.enabled = False
    Ultimo.enabled = False
    Btn_Excluir.enabled = False
    Btn_Salvar.enabled = True
    End Sub




    Private Sub btn_salvar_Click()
     
    'SALVAR O CONTEUDO EM UMA SEGUNDA TABELA
    If MsgBox("Deseja Salvar os Dados?", vbYesNo + vbInformation, "Atenção!!!") = vbYes Then
    Dim db As Database
    Dim rs As dao.Recordset

    Set db = CurrentDb()
    'ABRE O RECORDSET DA TABELA 2 PARA ADD OS DADOS.
    Set rs = db.OpenRecordset("Tb_Conta_Corrente")

    rs.AddNew 'ADD NOVO REGISTRO
    'NO CAMPO NOME DA TABELA2 COLOCA OS DADOS QUE TEM NO CAMPO ME.NOME DO FORMULARIO... E ASSIM SEGUE
    rs("Empresa") = Me.txtempresa
    rs("Histórico") = Me.txthistórico
    rs("Data_Pagamento") = Me.txtData_pagto
    rs("ClassifcDebito") = Me.txtClassifcDebito
    rs("Crédito") = Me.txtcredito
    rs("IDCaixa") = Me.IDCaixa
    rs("Tipo") = Me.Tipo

    rs.Update

    'ENCERRA AS CONEXÕES E LIMPA DA MEMORIA
    rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing
    End If


    Set db = CurrentDb()
    'ABRE O RECORDSET DA TABELA 2 PARA ADD OS DADOS.
    Set rs = db.OpenRecordset("Tbl_Resultado")

    rs.AddNew 'ADD NOVO REGISTRO
    'NO CAMPO NOME DA TABELA2 COLOCA OS DADOS QUE TEM NO CAMPO ME.NOME DO FORMULARIO... E ASSIM SEGUE

    rs("IDCaixa") = Me.IDCaixa
    rs("Empresa") = Me.txtempresa
    rs("Histórico") = Me.txthistórico
    rs("Data_Pagamento") = Me.txtData_pagto
    rs("ClassificCrédito") = Me.txtcalssificação_credito
    rs("Crédito") = Me.txtcredito
    rs("IDCaixa") = Me.IDCaixa
    rs("Tipo") = Me.Tipo
    rs("Centrodecustos") = Me.txtxCentrodeCusto

    rs.Update

    'ENCERRA AS CONEXÕES E LIMPA DA MEMORIA
    rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing

     
    On Error GoTo Err_btn_Salvar_Click
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

    IDCaixa.enabled = False

    Btn_Alterar.enabled = True
    NOVO.enabled = True
    Primeiro.enabled = True
    proximo.enabled = True
    anterior.enabled = True
    Ultimo.enabled = True
    Btn_Excluir.enabled = True
    NOVO.SetFocus
    Btn_Salvar.enabled = False
    Exit_btn_Salvar_Click:
    'soma = Texto16
       Exit Sub

    Err_btn_Salvar_Click:
    '    MsgBox Err.Description
    '    Resume Exit_Salvar_Click

    End Sub


    Obrigada


    Dina
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7243
    Registrado : 15/03/2013

    [Resolvido]Lançamentos duplicados nas tabelas Empty Re: [Resolvido]Lançamentos duplicados nas tabelas

    Mensagem  ahteixeira Qui 18 Maio 2017, 14:14

    Olá Dina,

    Tem que controlar quando está a alterar para edit.
    Veja primeira tabela está a fazer Edit.
    Na segunda adicionar (add), deve fazer como na primeira.
    Abraço
    avatar
    Dina.azevedo
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 23
    Registrado : 05/08/2016

    [Resolvido]Lançamentos duplicados nas tabelas Empty Re: [Resolvido]Lançamentos duplicados nas tabelas

    Mensagem  Dina.azevedo Qui 18 Maio 2017, 16:07

    Desculpas,

    Não consegui entender o que quis dizer.

    Clico no botão alterar, faço as alterações e ao clicar em salvar ele cria um novo registro somente nas Tabelas Tb_Resultado e Tb_Conta_Corrente.

    Abraço

    Dina
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7243
    Registrado : 15/03/2013

    [Resolvido]Lançamentos duplicados nas tabelas Empty Re: [Resolvido]Lançamentos duplicados nas tabelas

    Mensagem  ahteixeira Qui 18 Maio 2017, 20:01

    Olá, repare na parte que postou em Azul e a Vermelho

    rs.Edit

    rs.AddNew 'ADD NOVO REGISTRO


    No Azul está a editar
    No vermelho está Adicionar.

    Será controlar se é registo novo Adiciona se é registo que já existe Edita e atualiza.

    Abraço
    avatar
    Dina.azevedo
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 23
    Registrado : 05/08/2016

    [Resolvido]Lançamentos duplicados nas tabelas Empty Re: [Resolvido]Lançamentos duplicados nas tabelas

    Mensagem  Dina.azevedo Sab 20 Maio 2017, 11:57

    Obrigada,

    Inclui o rs.Edit no botão Salvar, deu certo,
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7243
    Registrado : 15/03/2013

    [Resolvido]Lançamentos duplicados nas tabelas Empty Re: [Resolvido]Lançamentos duplicados nas tabelas

    Mensagem  ahteixeira Sab 20 Maio 2017, 15:22

    Olá Dina,
    Obrigado pelo retorno.
    Os utilizadores do fórum agradecem.
    Abraço

      Data/hora atual: Qua 16 Jun 2021, 11:47