Newsgroup: it.comp.appl.access
Titolo: popolare nuovo DB con relazioni 1>molti

salve a tutti
ho dovuto abbandonare un vecchio Db con 1600 record con relazione 1 
 >molti, purtroppo non ho potuto utilizzare le vecchie tabelle in quanto 
molto diverse da quelle del nuovo DB..
quindi mi sono limitato solo ad importarle nel nuovo Db e dopo aver 
tolto le relazioni e chiave primarie con il copia - incolla mi sono 
popolato tutta la tabella Anagrafe (cognome, nome, residenza etc.)...
il problema sorge ora ad aggiungere nella tabella Prodotti (la parte 
molti) tutti i prodotti assegnati ad i rispettivi soggetti senza perdere 
i dati...
come potrei fare considerando che attualmente ho tolto appunto relazioni 
e chiavi ??
qualsiasi consiglio è ben accetto...
purtroppo non potendolo fare dovrei inserire tutti i prodotti a mano ed 
impiegherei molto tempo...
grazie a tutti e Ciao


Penso che sia stato un errore togliere relazioni e chiavi: se puoi
riparti dal database originale.
Meglio del copia/incolla avrei usato una query di accodamento dalle
vecchie tab a quelle nuove. Con una query di aggiornamento sulla tab
del lato molti avendo memorizzato in un campo "temporaneo" (creato ad
hoc, da eliminare ad importazione conclusa)  l'ID del record di
origine, puoi facilmente ricostruire i legami tra i record del lato
uno con quelli del lato molti.
Se non hai a disposizione le tab originali allora potresti forzare le
relazioni tra la tabella nuova e la vecchia attraverso i campi
"cognome", "nome" e residenza per evitare eventuali ononimie.
Buon lavoro

 grazie a tutti e Ciao
Penso che sia stato un errore togliere relazioni e chiavi: se puoi
riparti dal database originale.
beh.. cmq posso sempre ricrearle... cmq lavoro sempre sulla copia sia 
del db
originale che quello di destinazione...
Meglio del copia/incolla avrei usato una query di accodamento dalle
vecchie tab a quelle nuove. Con una query di aggiornamento sulla tab
del lato molti avendo memorizzato in un campo "temporaneo" (creato ad
hoc, da eliminare ad importazione conclusa)  l'ID del record di
origine, puoi facilmente ricostruire i legami tra i record del lato
uno con quelli del lato molti.
sinceramente ho capito ben poco come fare...purtroppo vi sono degli Id 
del vecchio
DB che partono da 417 mentre avrei voluto nel nuovo partire "bene" con 
1.
Se non hai a disposizione le tab originali allora potresti forzare le
relazioni tra la tabella nuova e la vecchia attraverso i campi
"cognome", "nome" e residenza per evitare eventuali ononimie.
come dicevo ho tutto l'originale a disposizione...ma essendo poco 
pratico mi sento perso...
al punto in cui sono ora devo aggiungere solo il lato molti...che avrei 
già provveduto a fare una prova con Excel a partire con gli indici ID da 
1...
chiaramente gli indici si ripetono tanti quanti sono i molti...
Buon lavoro
grazie...ma mi puoi dare qualche altra soluzione...
Ciao 

 - Mostra testo tra virgolette -
Mi spiace essere stato poco chiaro: cerco di spiegarti la logica.
Nelle tabelle "nuove" aggiungi un campo temporaneo del tipo dell'ID
delle tabelle vecchie: da quanto ho capito numerico.
Accoda tutti i dati dalle tabelle vecchie mettendo gli ID "vecchi" nei
nuovi campi: i nuovi record prenderanno degli ID diversi partendo da 1
ma saprai che il nuovo ID 1 corrisponde all'ID 417 della vecchia
tabella perchè lo troverai memorizzato nel "nuovo campo".  Resterà
vuoto il campo ID della tabella lato molti che lega i dati tra le due
tabelle nuove.
Adesso devi predisporre una query di aggiornamento che riempe in
automatico questo campo vuoto: devi relazionare le tabelle attraverso
il nuovo campo da una parte (tab nuove) e il vecchio ID dall'altra
(tab vecchie). Bastano le due tabelle lato molti e la nuova tabella
lato 1.  Se in automatico ti viene proposta la relazione tra le nuove
tabelle cancellala nella query.
In pratica la query di aggiornamento: prende il record della nuova
tabella lato molti -> record corrispondente in quella vecchia -> ID
vecchio nella tabella vecchia corrisponde al nuovo ID tabella nuova->
aggiorno il campo vuoto con il valore [tabnuova].[IDnuovo]
La mia incapacità a spiegare rende tutto più complicato: devi solo
fare attenzione alla query di aggiornamento.
Buon lavoro

 - Mostra testo tra virgolette -
Mi spiace essere stato poco chiaro: cerco di spiegarti la logica.
Nelle tabelle "nuove" aggiungi un campo temporaneo del tipo dell'ID
delle tabelle vecchie: da quanto ho capito numerico.
Accoda tutti i dati dalle tabelle vecchie mettendo gli ID "vecchi" nei
nuovi campi: i nuovi record prenderanno degli ID diversi partendo da 1
ma saprai che il nuovo ID 1 corrisponde all'ID 417 della vecchia
tabella perchè lo troverai memorizzato nel "nuovo campo".  Resterà
vuoto il campo ID della tabella lato molti che lega i dati tra le due
tabelle nuove.
Adesso devi predisporre una query di aggiornamento che riempe in
automatico questo campo vuoto: devi relazionare le tabelle attraverso
il nuovo campo da una parte (tab nuove) e il vecchio ID dall'altra
(tab vecchie). Bastano le due tabelle lato molti e la nuova tabella
lato 1.  Se in automatico ti viene proposta la relazione tra le nuove
tabelle cancellala nella query.
In pratica la query di aggiornamento: prende il record della nuova
tabella lato molti -> record corrispondente in quella vecchia -> ID
vecchio nella tabella vecchia corrisponde al nuovo ID tabella nuova->
aggiorno il campo vuoto con il valore [tabnuova].[IDnuovo]
La mia incapacità a spiegare rende tutto più complicato: devi solo
fare attenzione alla query di aggiornamento.
Buon lavoro
-----------------
Ciao Beppe... penso che non sia stato tu poco chiaro... ma essendo poco 
pratico di Access
sono io che non riesco a comprendere bene... cmq...
vedrò di seguire la soluzione descritta sopra.. nache se penso che 
siccome le strutture delle tabelle sono differenti avrò non pochi 
problemi...
ecco xrchè chiedevo nel punto in cui sono ora, ossia la tabella Anagrafe 
completa...
come posso "relazionare" la tabella Prodotti...
io pensavo di assegnare alla tabella Anagrafe una numerazione 
progressiva
 e poi nella tabella Prodotti assegnare + numeri quante sono le 
relazioni
ossia tabella Anagrafe
ID  cognome
 1      pinco
tabella Prodotti
1     pane
1     latte
e così via.. poi dopo aver fatto tutto il lavoro relazionare
cmq forse ho detto una stronzata e non si può fare, se così
fa niente e penso dovrò impazzirmi a fare quanto da te descritto..
Ciao