Newsgroup: it.comp.appl.access
Titolo: Confronto Tabelle 2

Grazie e mille a chi sarà così gentile da rispondermi. Ciaooooooooo
Tengo a precisare che il codice di esempio che ho prelevato dal Sito Comune,
l'ho adattato al mio Db (infatti è bastato cambiare i riferimenti alle
generiche "Tab1" e "Tab2" con le tabelle specifiche del mio caso). Il
problema è che la routine presenta i risultati uno alla volta e tramite
messagebox. Questa soluzione è utile se le differenze sono una o due ( e cmq
non evidenzia specificatamente quale campo è diverso). Io vorrei che tutte
le differenze venissero visualizzate contemporaneamente, e avevo pensato ad
una tabella. O comunque un elenco di tutti i campi della tabella A che sono
diversi da quelli della tabella B, in modo da individuare velocemente:
- tutti i campi che sono cambiati
- tutti i campi nuovi
Grazie e mille di nuovo
Claudio


[CUT]
Hai provato a crearti una query usando Autocomposizione ricerca dati non
corrispondenti?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 corrispondenti?
Si ma il risultato non è quello che vorrei. Difatti non mi è possibile
evidenziare il cambiamento del valore all'interno di un campo. La ricerca
dati non corrispondenti mi è utile solo per sapere se c'è una differenza a
livello di numero di record.Se il numero dei record non cambia, ma invece
variano i valori nei campi, questo tipo di query non mi è di aiuto. O per lo
meno, io non sono in grado di utilizzarlo.
E' possibile fare in modo che attraverso una query che utilizza entrambe le
tabelle (vecchia e nuova), mi si evidenzi quali campi presentano un valore
differente ? Non so come fare per specificare un criterio che confronti i
valori della tabella A con quelli della tabella B, evidenziando solo quelli
che sono diversi e non solo quelli che sono uguali, per quello lo so già.
Grazie e mille
Claudio

 ha scritto nel messaggio
news:kHhga.11891$Jg1.2...@news1.tin.it...

Prova a mettere in LEFT JOIN su TUTTI i campi la prima con la seconda
tabella e visualizza solo i record della prima tabella che non hanno nella
seconda tabella almeno un record che abbia tutti i campi uguali.
Insomma, se le due tabelle si chiamano Tabella1 e Tabella2 ed hanno la
seguente struttura:
ID              Contatore e chiave primaria
Cognome   Testo
Nome         Testo
Indirizzo      Testo
Città            Testo
Prova con una query che abbia il seguente codice SQL:
SELECT Tabella1.*
FROM Tabella1 LEFT JOIN Tabella2 ON (Tabella1.Città = Tabella2.Città) AND
(Tabella1.Indirizzo = Tabella2.Indirizzo) AND (Tabella1.Nome =
Tabella2.Nome) AND (Tabella1.Cognome = Tabella2.Cognome)
WHERE (((Tabella2.Cognome) Is Null));
Se poi vuoi vedere i record della seconda tabella che non hanno record
uguali nella prima tabella:
SELECT Tabella2.*
FROM Tabella2 LEFT JOIN Tabella1 ON (Tabella2.Città = Tabella1.Città) AND
(Tabella2.Indirizzo = Tabella1.Indirizzo) AND (Tabella2.Nome =
Tabella1.Nome) AND (Tabella2.Cognome = Tabella1.Cognome)
WHERE (((Tabella1.Cognome) Is Null));
Se vuoi visualizzare contemporaneamente sia gli uni che gli altri fai una
query unione delle due query di cui sopra.
