Newsgroup: it.comp.appl.access
Titolo: Come confronto tabelle (copie in tempi diversi) aventi medesima struttura ma qualche record in + o in - o differente ?

Salve a tutti.
Non sono certo una gran esperta di Access, anzi direi per nulla, e proprio
per questo propongo questa mia... nella speranza che qualcuno possa
aiutarmi.
Come posso confrontare le singole righe di record di tabelle aventi uguale
struttura ma dati  -leggi contenuto dei campi- in qualche caso differenti?
O meglio, come posso evidenziare, e magari estrarre (ma una volta
evidenziati è tutt'uno) i record differenti tra due tabelle in cui la
maggior parte dei record è coincidente ma alcuni, solo quegli alcuni di cui
mi interessa evidenziare le differenze, sono differenti???
Premetto che ho cercato di trarre, dalla documentazione in linea, consigli
pre realizzare query fatte ad hoc...ma nulla...che sia sbrigativo, o forse
che sia adatto allo scopo...forse non è il modo giusto, ma il creare copie
delle tabelle e mettrle a confronto, COME SI FA ???
Devo effettuare un confronto tra tabelle presenti all'interno di un file
MDB, o meglio tra tabelle aventi la stessa struttura e contenute in due
copie dei  medesimi file MDB  effettuate in periodi differenti, file  che
vengono utilizzati quali contenitori di dati nell'ambito di un piccolo
gestionale composto da moduli gestiti da applicazioni esterne fatte in
Visualbasic (credo).
Orbene, all'interno di queste tabelle sono conservati dei dati...che devo
confrontare con dati presenti nelle vecchie copie degli stessi file MDB,
risalenti però a un periodo pregresso.
Ora, con Access riesco ovviamente ad aprire sia le vecchie copie che le
copie più aggiornate dei file MDB, potendo così visuaizzare il contenuto per
ciascuna tabella, ma sapete, sono tabelle di circa 1000 record ciascuna, in
qualche caso i campi per record sono più di venti (direi che che di questa
estensione ce ne sono 5, + altre tabelle minori) ...quindi si tratta pur
sempre di circa 10-15000 record da confrontare...capirete, tenere due
finestre affiancate a veder scorrere le righe per vedere in cosa
differiscono, cercando di cogliere le differenze in ciascun campo...è
impresa assai ardua...praticamente impossibile.
ora la mia domanda è:
di due tabelle con identica struttura, ma con la possibilità che contengano
record differenti, come faccio - con qualche automatismo- ad evidenziare
solo le righe che differiscono anche per il contenuto di un solo campo ?
Con la preghiera che chi di voi conosce un sistema sbrigativo me lo insegni
o me lo suggerisca, vi saluto cordialmente
Marika,
che rischia di farsi licenziare

OGGETTO:Come confronto tabelle (copie in tempi diversi) aventi medesima
struttura ma qualche record in + o in - o differente ?



Se vai nell'autocomposizione delle query esiste un titpo di query che fa
quello che cerchi.
MAssimiliano

"Marika Ufficio" <NOS...@LIBERO.it> ha scritto nel messaggio
news:AXO3c.64217$FJ6.2...@twister1.libero.it...

Vai sul Sito Comune (link qui sotto), vai nella Sezione Tables e vedi se fa
al caso tuo la FAQ di Alberto Plano intitolata "Routine che confronta i
records di due tabelle o query e identifica le differenze.".
Fai attenzione che il codice VBA che trovi pubblicato nella FAQ di cui sopra
fa riferimento alla libreria Microsoft DAO quindi, se usi una versione di
Access successiva ad Access 97, aggiungi al tuo database i riferimenti a
tale libreria, avendo però cura di inserirli in testa agli altri riferimenti
del tuo database.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:iaY3c.61751$Kc3.1...@twister2.libero.it...



[CUT]
Quando rispondi scrivi DOPO e non prima del testo dei messaggi precedenti.
Rispondendo al tuo primo quesito: come avevi già supposto, per prima cosa
devi copiare in un modulo del tuo database il codice VBA pubblicato nella
FAQ del Sito Comune: al limite puoi copiarlo con un normalissimo
copia/incolla.
Ciò fatto devi eseguire la Sub in questione; per fare questo potresti, ad
esempio, a fronte dell'evento "Su clic" di un pulsante di comando generare
il seguente codice VBA:
Call Tabelle_a_confronto("NomePrimaTabella", "NomeSecondaTabella")
dove NomePrimaTabella e NomeSecondaTabella li sostituirai con i nomi reali
delle tue due tabelle che contengono i dati da confrontare.
Così facendo Access ti segnalerà con dei messaggi prima i record della prima
tabella che non trovano corrispondenza nella seconda tabella e poi i record
della seconda tabella che non trovano corrispondenza nella prima tabella.
Come ti ho già detto, visto che tu usi Access 2000 è necessario sistemare i
riferimenti del tuo database; a tale scopo apri la struttura del modulo dove
hai memorizzato la Sub del  Sito Comune e dal menu Strumenti esegui il
comando Riferimenti... ; nella finestra che ti si apre cerca il riferimento
chiamato Microsoft DAO 3.6 Object Libreary e accendi lo "svirgolino" posto
alla sua sinistra, dopo di che evidenzia tale riferimento e, agendo sulla
freccia verso l'alto che trovi alla destra dell'elenco, portalo più in testa
possibile dell'elenco dei riferimenti.
Comunque dovresti poter risolvere il tuo problema anche creandoti una query
con l'Autocomposizione ricerca dati non corrispondenti: dovrebbe essere per
te molto più facile che "smanettare" con il codice VBA, ed inoltre avresti
una lista completa dei soli record non corrispondenti.
Mi auguro di essere stato abbastanza chiaro.
