Newsgroup: it.comp.appl.access
Titolo: confronta i records di due tabelle o query e identifica le differenze

Un saluto a tutti.
Non sono un esperto di access ma cerco di imparare.
Il mio problema:
Sto utilizzando la routine di  Alberto Plano " confronta i records di
due tabelle o query e identifica le differenze " dal sito comune e
desidererei che le differenze mi vengano inserite in una nuova tabella
anzichè tramite un messaggio.
Un vero ringraziamento a coloro che vorranno darmi un aiuto.
Lorenzo

 ...
 
Una versione semplice senza cambiare molto nella procedura:
 
Creati una tabella "tblDiff" con due campi:
DiffId (contatore)
Diff (memo)
 
Nella procedura ci sono 4 cose da cambiare:
 
'dopo questa riga
Dim T1 As DAO.Recordset, T2 As DAO.Recordset
'inserisci:
Dim rsDiff As DAO.Recordset
 
'dopo questa riga
Set T2 = dbase.OpenRecordset(Tab2, dbOpenSnapshot)
'inserisci:
Set rsDiff = dbase.OpenRecordset("tblDiff", dbOpenDynaset)
 
Sostituisci le due righe:
MsgBox messaggio
con
 
rsDiff.AddNew
    rsDiff!Diff = Replace(messaggio, Chr$(10), " ")
rsDiff.Update
 
-- 
Ciao
Karl
*********
Access FAQ: 
http://www.donkarl.com/it
 
 
 

 > anzichè tramite un messaggio.

Ti ringrazio Karl. Ci provo.

 - Mostra testo citato -
 
Karl, perfetto.
 
Karl , scusami se approfitto della tua pazienza:
Tab1
Num_doc     Data_Doc    Importo_Doc
1234            12/03/2012    345,00
  255            06/03/2009    567,00
  456            06/05/2010    980,00
 
Tab2
Num_doc     Data_Doc    Importo_Doc
12345           12/03/2012    345,00
  2554           06/03/2009    567,00
  456            06/05/2010    980,00
Come posso dal confronto trasferire in una tabella le differenze in
campi diversi?
Es.
tblDiff
Diff_Num_doc  Diff_Data_Doc   Diff_Importo_Doc
1234                12/03/2012        345,00
255                  06/03/2009        567,00
 
Karl, non ti disturberò più.
 
Grazie
 
 
 
 
 

After serious thinking lorenzo57 wrote :

Tu vorresti trasferire in una nuova tabella tutti quei record che, con 
riferimento al campo Num_doc, si trovano in Tab1 ma non anche in Tab2.
Analogamente per i campi Data_Doc e Importo_doc.
E quant'altri campi ancora?
E non te ne frega niente di quei record che si trovano in Tab2 ma non 
anche in Tab1.
 
È esatto?
 
Bruno
 
 


Sì, Bruno.

 wrote:

Non m'interessa dei record che si trovano in Tab2 ma non in Tab1.
 

 Non m'interessa dei record che si trovano in Tab2 ma non in Tab1.
 
Puo darsi che che ti basta una semplice query invece del codice?
Se crea una nuova query nel primo dialogo puoi scegliere la voce
"Creazione guidata Query ricerca dati non corrispondenti".
 
Vedi anche:
 
 Record di A non presenti in B
 
http://www.donkarl.com/it?FAQ3.16
 
 
 
-- 
Ciao
Karl
*********
Access FAQ: 
www.donkarl.com/it
 
 
 
 


Karl, tra le due tabelle non ho un valore univoco.


SELECT Tab1.Numero_Doc, Tab1.Data_doc, Tab1.Importo_f
FROM Tab1 LEFT JOIN Tab2 ON Tab1.Numero_Doc = Tab2.Numero_Doc
WHERE (((Tab2.Numero_Doc) Is Null));
 
In questo modo mi trova le differenze solo di Numero_doc ma non degli
altri due campi
Lorenzo


Forse ho risolto. Ho collegato il JOIN anche tra Data_doc e Importo_f.
SELECT Tab1.Numero_Doc, Tab1.Data_doc, Tab1.Importo_f
FROM Tab1 LEFT JOIN Tab2 ON (Tab1.Importo_f = Tab2.Importo) AND
(Tab1.Data_doc = Tab2.Data_doc) AND (Tab1.Numero_Doc =
Tab2.Numero_Doc)
WHERE (((Tab2.Numero_Doc) Is Null));