Newsgroup: it.comp.appl.access
Titolo: Suddividere una tabella in due collegate

Scusate le tante domande ma sto cercando di riorganizzare il mio db clienti 
che ho creato ed utilizzato già da circa 12 anni or sono.
Il problema che mi scoraggia di più è la suddivisione dei campi di una 
tabella in altre 2 collegate ovvero: in questa tabella ho in  alcuni campi 
l'anagrafica cliente (Cognome, nome, via, località, comune ecc..) e in altri 
i dati inerenti all'impianto (marca,  modello e matricola apparecchio, data 
attivazione, data prossima manutenzione ecc...). A questo punto tra i circa 
6500 record ne ho circa 380 duplicati xchè lo stesso cliente ha più 
apparecchi diversi. Quindi ho creato una tabella "Cliente" dove ho copiato i 
vari campi dell'anagrafica cliente la cui chiave primaria dovrei collegarla 
ad un campo idCliente che ho creato nell'altra tabella esistente. Qui sorge 
il problema xchè se creo la relazione mi viene fuori una relazione uno a uno 
forse xchè non ho ancora eliminato i dati duplicati e se elimino i dati 
duplicati prima quale è il sistema meno dispendioso di tempo per riassociare 
i dati di una e dell'altra tabella?
Molto grato a chi mi darà una dritta!
Saluti Gianni 

 ha scritto nel messaggio 
news:47376bdd$0$4796$4faf...@reader4.news.tin.it...

Ciao Gianni,
se ho capito bene tu hai esattamente la tabella Macchine.
Potresti copiare la tabella che hai e incollarla col nuovo nome di Clienti.
Metti in ordine per cliente (magari Cognome e nome) e così vedi 
'immediatamente' i records duplicati.
Elimini i duplicati, direttamente da tabella, non è una operazione 
difficile, lunghetta .... ma prenditi del tempo.
A questo punto ( o potevi anche farlo prima) elimini tutti i campi che non 
appartengono alle informazioni di una anagrafica.
## hai la tabella clienti!
Sempre in questa tabella, aggiungi un campo contatore. Questo ti permette di 
stabilire un indice univoco per ogni nominativo.
Adesso passiamo alla tabella che hai (macchine).
Inserisci un campo numerico (intero lungo) che ospiterà l' ID del cliente 
(con cui sarà, in seguito, anche in relazione).
Tramite una query di aggiornamento vai a mettere l'ID cliente giusto ad ogni 
riga di registrazione.
Dai una controllata al risultato, magari 'confrontando a mano' alcuni 
nominativi da una tabella e i corrispondenti nell'altra e verificando che 
gli ID di un ciente corrispondano a quelli nelle registrazioni.
Ora puoi togliere i campi con i dati anagrafici e ti resteranno solo le 
notizie della macchina e l' ID del cliente associato.
Stabilisci, a questo punto, la relazione tra le due tabelle e dovrà essere 
[clienti] 1==>Molti [macchine] sul campo ID.
Non è una operazione semplice, ma se affrontata con scrupolo non comporta 
rischi.
Ti consiglio di operare su una copia del tuo DB, registrando i vari 
passsaggi finchè non danno il risultato voluto. Alla fine puoi usare le 
tabelle dal DB di prova, importandole nel DB definitivo.
L'operazione più lunga è sicuramente la pulizia dei records doppi dalla 
prima copia della tabella. Se vuoi puoi salvarti questa tabella per non 
dover rifare tutto da capo ....
IvanDaBologna


Grazie Ivan, appena avrò un pò di tempo disponibile proverò seguendo i tuoi 
consigli.
Saluti, Gianni