Newsgroup: it.comp.appl.access
Titolo: Controllo record su tabelle

Buongiorno a tutti.
Ho due tabelle con i campi uguali, avrei bisogno di verificare che in
entrambe le tabelle ci siano gli stessi record, nelle tabelle ho sulla prima
colonna un dato alfanumerico e sulla seconda un dato numerico es:
TAB 1
campo1          campo2
VS01              001
VS02              002
VS01              002
ecc ..               ecc...
TAB 2
campo1            campo2
VS02               001
VS01               002
VS01               001
ecc....               ecc....
come faccio a confrontare le tabelle considerato che devo tenere conto della
relazione fra i due campi?
Spero di essermi spiegato
Grazie anticipatamente per le risposte.
Saluti
Alessandro

 ha scritto nel messaggio
news:anjk57$rlt$1...@alix.livenet.it...

Vai sul Sito Comune (link qui sotto), nella Sezione Tables leggiti la FAQ di
Alberto Plano intitolata "Routine che confronta i records di due tabelle o
query e identifica le differenze"; penso faccia al caso tuo.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ---------------------------------------------
Grazie per la risposta, ho copiato e provato il codice, pero' quello che
servirebbe a me è un qualcosa che mi controlli solo le prime due colonne e
non tutto il record,(probabilmente mi sono spiegato male nelle tabelle ci
sono piu' di due colonne),ho provato a modificarlo ma non ci sono riuscito.
Vorrei inoltre copiare da una tabella all'altra i dati che non sono uguali.
Gazie per gli aiuti.
Saluti
Alessandro

 ha scritto nel messaggio
news:ank08n$vq2$1...@alix.livenet.it...

Sempre che abbia capito cià che ti serve, per visualizzare tutti i record di
TAB1 che in base a Campo1 e Campo2 non hanno record corrispondenti in TAB2
prova ad usare una query che abbia il seguenye codice  SQL:
SELECT TAB1.*
FROM TAB1 LEFT JOIN TAB2 ON (TAB1.Campo2 = TAB2.Campo2) AND (TAB1.Campo1 =
TAB2.Campo1)
WHERE (((TAB2.Campo1) Is Null));
Invece per visualizzare tutti i record di TAB2 che in base a Campo1 e Campo2
non hanno record corrispondenti in TAB1 prova ad usare una query che abbia
il seguenye codice  SQL:
SELECT TAB2.*, TAB1.Campo1
FROM TAB2 LEFT JOIN TAB1 ON (TAB2.Campo2 = TAB1.Campo2) AND (TAB2.Campo1 =
TAB1.Campo1)
WHERE (((TAB1.Campo1) Is Null));
Infine, per copiare in TAB2 i record di TAB1 che in base ai campi Campo1 e
Campo2 non hanno corrispondenza in TAB2, prova con una query di accodamento
che abbia il seguente codice SQL:
INSERT INTO TAB2 ( Campo1, Campo2, Campo3 )
SELECT TAB1.Campo1, TAB1.Campo2, TAB1.Campo3
FROM TAB1 LEFT JOIN TAB2 ON (TAB1.Campo1 = TAB2.Campo1) AND (TAB1.Campo2 =
TAB2.Campo2)
WHERE (((TAB2.Campo1) Is Null));
Spero che sia ciò che ti serviva.


 ha scritto nel messaggio
news:bSgn9.47626$Eu.10...@twister1.libero.it...

Grazie per quello che mi hai scritto mi sara' utile per un'altra cosa, ma
non e' quello che mi serve adesso, cerco di spiegarmi meglio:
il campo1 si chiama MASSA
il campo2 si chiama INDICE DI MODIFICA
ogni MASSA puo' avere più INDICI DI MODIFICA
Nel campo1 ci sono piu' masse uguali ma che avranno indici di modifica
diversi
Nel campo2 ci saranno piu' indici di modifica uguali ma non avranno mai
masse uguali.
Io dovrei controllare che nella tab1 ci siano le stesse masse con relativi
indici di modifica esattamente come sono in tab2 se non c'e' la combinazione
dei due elementi deve aggiungermi il record.
       TBL2                        TBL1
MASSA      IM            MASSA         IM
VS01         001            VS01             001
VS02         001            VS01             002   (Deve caricarmi questo
record su TBL2 senza togliermi nessun record)
Spero di essermi spiegato meglio
Grazie
Alessandro

 ha scritto nel messaggio
news:ank964$35j$1...@alix.livenet.it...

Scusami Alessandro, ma la terza mia query fa proprio quello che dici tu:
l'hai provata?
Inserisce VS01 002 in TBL2.
Se preferisci te la riscrivo con i nomi cambiati come hai scritto in questo
tuo ultino messaggio:
INSERT INTO TBL2 ( MASSA, [INDICE DI MODIFICA] )
SELECT TBL1.MASSA, TAB1.[INDICE DI MODIFICA]
FROM TBL1 LEFT JOIN TBL2 ON (TBL1.MASSA = TBL2.MASSA) AND (TBL1.[INDICE DI
MODIFICA] = TBL2.[INDICE DI MODIFICA])
WHERE (((TBl2.MASSA) Is Null));
Dovrebbe fare ciò che tu hai scritto.



Grazie Roberto ci sono riuscito, mi ero sbalgliato a scriverla........
(scusa)
Grazie ancora per le risposte
Saluti
Alessandro