Aggiornare i valori delIe chiavi esterne

di il
3 risposte

Aggiornare i valori delIe chiavi esterne

Sono un principiante che ha iniziato a studiare access. Sto sbattendo da tempo su un problema che non riesco a risolvere e non riesco ad andare avanti. Ringrazio chi vorrà aiutarmi.
Sto creando un database con tre tabelle Clienti, Ordini, Prodotti. Le TRE tabelle del database vengono aggiornate SOLO importando dati esterni (che mi vengono forniti precompilati da file excel). Dopo tanto sbattere ci sono riuscito ad inserire dati esterni!
Su access per ogni tabella ho creato il campo per la chiave primaria (IDClienti; IDOrdini; IDProdotti). Ho creato campi con lo stesso nome che sono inseriti nelle altre tabelle per usarli come chiave esterna delle altre tabelle per poterle mettere in relazione tra loro e successivamente sviluppare maschere e query. Quindi la tabella Ordini ha anche la chiave esterna IDClienti, campo comune per stabilire la relazione tra le tabelle Clienti e Ordini e la chiave esterna IDProdotti, campo comune per stabilire la relazioni tra le tabelle Ordini e Prodotti. (ogni cliente può fare più ordini ed ogni ordine contenere più prodotti)
Quando aggiungo nuovi dati da excel, ovviamente automaticamente si incrementa la chiave primaria delle tabelle per i nuovi record aggiunti. Come fare in modo che si aggiorni automaticamente la chiave esterna nelle tabelle correlate? Cioè se aggiungo dieci nuovi clienti e si incrementa di dieci la chiave primaria IDClienti nella tabella Clienti, poiché sono aggiunti dieci record, vorrei che questo succedesse anche nella chiave esterna IDClienti della tabella Ordini; cioè che anche i campi della chiave esterna si aggiornassero. Lo stesso per Ordini e Prodotti. Se applico l’integrità referenziale con gli aggiornamenti a catena, poi non mi fa aggiornare le tabelle con i nuovi dati da excel. Ho provato allora con query di aggiornamento e unione inutilmente (forse sbaglio a farle). Quale è il metodo da usare? Grazie a chi vorrà rispondermi e scusate la banalità (per voi) della domanda.

3 Risposte

  • Re: Aggiornare i valori delIe chiavi esterne

    Visto che parli di Access ti evidenzio che esiste, per questo prodotto, apposita area del forum e quindi chiedi ad un moderatore di spostare lì il thread.
    In merito al quesito; evidenzio che quando importi i dati da Excel devi avere già le chiavi necessarie al mantenimento delle relazioni fra le tre tabelle.
    Puoi eventualmente, successivamente, adattare le chiavi che facciano riferimento nel tuo database in modo da adeguarsi alla tua struttura ed applicare la integrità referenziale.
    Considera che in Access, per mantenere le relazioni, vanno acquisiti prima i dati lato 1 e poi quelli del lato N, inoltre se impieghi una chiave primaria con numerazione automatica dovrai variarne il tipo per modificarne il contenuto.
    Infine una chiave esterna non può contenere valori che non esistono nella tabella referenziata.
  • Re: Aggiornare i valori delIe chiavi esterne

    I nomi delle tue tabelle ricordano molto il noto database NorthWind dove si parla delle seguenti tabelle e relative relazioni:
    Clienti uno-a-molti Ordini: fatto
    Ordini uno-a-molti DettagliOrdini
    Prodotti uno-a-molti DettagliOrdini

    Ti manca la tabella DettagliOrdini.
  • Re: Aggiornare i valori delIe chiavi esterne

    Desidero ringraziarvi, Willy ed Osvaldo per il tempo che mi avete dedicato.
    Mi metterò a studiare quanto mi avete suggerito per vedere se riesco a risolvere.
    Grazie
Devi accedere o registrarti per scrivere nel forum
3 risposte