Jump to content


Photo

Duplicando Insert Na Tabela


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 spynet

spynet

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino

Posted 10/07/2007, 12:15

Preciso pegar todos os registros da tabela CONTAS_DBF e Inserir na tabela CONTAS até aí ok.... rssss
O problema é que quando é inserido mais um registro na tabela CONTAS_DBF e mando atualizar a tabela CONTAS ele insere tudo novamente... kkkkk e eu quero que insira somente o registro novo e os demais que tem nas duas tabelas faça somente o UPDATe caso tenha alguma alteração em algum campo.... sacou????
Veja o codigo.




' SQL PARA ABRIR TODAS AS CONTAS DO DBF
Set rs_contadbf = New ADODB.Recordset
sql_contadbf = "Select * From CONTA_DBF"
rs_contadbf.Open sql_contadbf, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, -1

' VERIFICA SE A TABELA DBF TAH VAZIA
If rs_contadbf.EOF Or rs_contadbf.BOF Then
'MsgBox "VAZIA"
Else


' LOOP NA TABELA CONTA_DBF
While Not rs_contadbf.EOF

' SQL PARA COMPARAR O CD_CONTA DAS DUAS TABELAS (CONTA_DBF E CONTA)
Set rs_conta = New ADODB.Recordset
sql_conta = "Select * From Conta Where conta.cd_conta = '" & Trim(rs_contadbf!CD_CONTA) & "'"
rs_conta.Open sql_conta, CurrentProject.Connection, adOpenKeyset, adLockOptimistic, -1


' VERIFICA SE EH DIFERENTE UM DO OUTRO
If rs_conta!CD_CONTA = rs_contadbf!CD_CONTA Then

MsgBox "IGUAIS FAZ UPDATE = " & rs_conta!CD_CONTA

Else

'TIRAR O AVISO DE EXECUCAO DO INSERT
DoCmd.SetWarnings False

sql_insert = "INSERT INTO CONTA ( CD_CONTA, CD_CLAS, DS_CONTA, TP_CONTA, CD_HIST, CD_IRRF, CD_CORREC, CD_EXTRAT, CD_CTASAI, CD_CBTAXA, CD_JUROS, CD_CPMF, CD_MULTA, CD_IMPRES ) SELECT CONTA_DBF.CD_CONTA, CONTA_DBF.CD_CLAS, CONTA_DBF.DS_CONTA, CONTA_DBF.TP_CONTA, CONTA_DBF.CD_HIST, CONTA_DBF.CD_IRRF, CONTA_DBF.CD_CORREC, CONTA_DBF.CD_EXTRAT, CONTA_DBF.CD_CTASAI, CONTA_DBF.CD_CBTAXA, CONTA_DBF.CD_JUROS, CONTA_DBF.CD_CPMF, CONTA_DBF.CD_MULTA, CONTA_DBF.CD_IMPRES FROM CONTA_DBF"

DoCmd.RunSQL sql_insert
DoCmd.SetWarnings True

MsgBox "DIFERENTES FAZ INSERT = " & rs_contadbf!CD_CONTA
End If



rs_contadbf.MoveNext
Wend

End If




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq