Newsgroup: it.comp.appl.access
Titolo: come faccio a cambiare le chiavi primarie mantenendo i contenuti?

Salute a tutti
Ho un database con una serie di tabelle (7) e relative chiavi primarie.
Man mano che sono stati inseriti dei dati mi sonom accorto che alcune chiavi
primarie a suo tempo scelte non sono + adatte allo scopo in quanto, ahimè,
non identificano univocamente i record (purtroppo non sono un esperto). Sono
quindi costretto a cambiare alcune di queste chiavi MENTENENDO PERO' I
CONTENUTI INFORMATIVI nelle varie tabelle.
Mi spaventa l'idea di reinserire tutti i contenuti da zero e mi chiedevo se
esiste qualche procedura + o - automatica che mi verrebbe in soccorso
Ciao.

 wrote in message
news:9mifmb$hvt$1...@lacerta.tiscalinet.it...



Che tipo dati sono i campi chiave primaria?
Come sei riuscito ad inserire in una tabella due record che hanno la stessa
chiave primaria?
Esistono tra le tabelle delle relazioni tramite le chiavi primarie che
cadrebbero nel caso in cui tu cambiassi il valore della chiave primaria?
Comunque tramite l'autocomposizione ricerca duplicati creati una query che
ti segnala i record con la stessa chiave primaria, almeno se devi
intervenire a manina santa il problema diventa circoscritto ed intervieni
solo sulla metą dei record anomali; certo se hai record correlati in altre
tabelle, l'automatismo mi sembra difficile se non impossibile.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 tabelle, l'automatismo mi sembra difficile se non impossibile.
Se non esiste l'automatismo cui speravo, qual'è la strada meno dolorosa per
mantenere i contenuti?
Ciao

 tabelle, l'automatismo mi sembra difficile se non impossibile.



Puoi entrare in 'design view' di una tabella aggiungere un campo
ChiavePrimariaTabella di tipo contatore e quindi premere il tasto 'chiave
primaria' in corrispondenza del nuovo campo di tabella. In questo modo la
chiave primaria si sposta sul nuovo campo, il nuovo campo assume valori da 1
in poi per ogni record esistente, tutti gli altri campi sono invariati.
Forse in seguito dovrai lavorare un pņ sulle relazioni fra tabelle ...
Ciao, Marco

 ha scritto nel messaggio
news:9mj9r3$sau$1...@lacerta.tiscalinet.it...

Mi sembra di capire che l'intervento sulle tabelle a questo punto non sia la
parte più complessa: l'intervento da fare sulla tabella principale te lo ha
già suggerita Marco; nelle altre tabelle collegate alla principale dovrai
inserire un nuovo campo numerico (ad esempio di nome Pippo); poi con una
query di aggiornamento (una per ogni tabella collegata) aggiornare il campo
Pippo ricavando il valore tramite una funzione DLookup che abbia come
dominio la tabella principale e che usi nei criteri di ricerca la vecchia
chiave primaria.
Fatto questo però devi ricrearti tutte le relazioni tra le tabelle e
rivisitare (non so quanto sostanziosamente) tutte le queries, tutte le
maschere (attento alle proprietà dei controlli sottomaschera), tutti i
report (attento alle proprietà dei controlli sottoreport), e tutte le
routine VBA ovunque si trovino; d'altra parte alla chiave primaria della
tabella principale ed alle chiavi esterne delle tabelle collegate hai
cambiato sia il nome che il tipo di dato (da testo a numerico). Se non si
tratta di molta roba ti conviene forse buttare tutto e ricominciare da capo,
specie se sei abituato a lavorare molto con l'autocomposizione.
Insomma ha sicuramente da lavorare un bel pò.
