Condividi tramite

Tabelle Correlate

Anonimo
2018-02-25T16:07:57+00:00

Buongiorno

sto muovendo i primi passi in Access e, penso sia normale poter porre anche domande stupide ma, per me che sono un neofita sono di estrema importanza.

Ho creato due tabelle, queste sono legate da una relazione una a molti per mezzo di un campo comune, in pratica il campo "NUM PROFORMA" della tabella "DB AVVISO" (tabella considerata principale) è  l'1 della relazione che diventa "a molti" per il campo "NUM PROFORMA" della tabella "DB DETTAGLIO AVVISO".

Premetto che entrambe le tabelle hanno il primo campo "ID" a numerazione incrementale per il quale è impostata la chiave primaria.

le tabelle fanno inoltre parte di una maschera (con i dati della tabella principale), la quale contiene una sottomaschera con i dati della tabella secondaria.

Avendo popolato entrambe le tabelle con dati provenienti da Excel, andando a scorrere i record attraverso la maschera non crea nessun problema, vengono evidenziati sia i dati della tabella principale sia quelli correlati della tabella secondaria.

il problema nasce nel momento in cui vado a inserire un nuovo record, nel momento che vado a scrivere i dati nella sottomaschera, mi viene segnalato il seguente errore:

Impossibile aggiungere o modificare il record. Nella tabella “DB AVVISO” è necessario un record correlato

Cosa ho trascurato? e cosa posso fare per risolvere il problema?

grazie fin da ora per l'aiuto

Ciro

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

5 risposte

Ordina per: Più utili
  1. Anonimo
    2018-02-27T13:59:55+00:00

    Ciao Mimmo

    ti ringrazio per l'aiuto ma, il vero problema era un altro, la mia inesperienza mi ha portato a tentare di inserire i nuovi valori in una query e non nelle tabelle.

    Grazie ancora per la disponibilità

    Ciro

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-02-27T10:25:20+00:00

    Ciao,

    nell'evento prima di aggiornare della sottomaschera devi impostare il campo che è chiave esterna al valore della maschera principale,

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-02-26T04:38:56+00:00

    ciao Ciro,

    [...]

    per cui, in questo caso, tra le due tabelle, nel creare la relazione non devo applicare la Integrità Referenziale?

    [...]

    beh, no, l'integrità referenziale è sacrosanta in casi come il tuo.

    Devi intervenire in modo che la compilazione della form sia tale da intercettare l'errore nel caso in cui il lato 1 non sia compilato.

    Prova a capire come, studiaci su..! :-)

    [...]

    Grazie come sempre per la tua disponibilità

    Ciro

    prego, ciao!

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2018-02-25T17:49:33+00:00

    Ciao Sandro

    per cui, in questo caso, tra le due tabelle, nel creare la relazione non devo applicare la Integrità Referenziale?

    Grazie come sempre per la tua disponibilità

    Ciro

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2018-02-25T17:24:18+00:00

    ciao Ciro,

    dai un'occhiata all'immagine qui sotto :

    se vedi la tabella lato1 contiene alcune righe, id_ato1 è la chiave primaria della tabella lato1 ed è relazione uno a molti con la tabella lato2, infatti id_lato1 nella tabella lato2 è la chiave esterna.

    Tutto funzione regolarmente quando nella tabella lato2 la chiave esterna che è la chiava primaria della tabella lato1 è esitente ( (vedi 9 e 10 id_lato1 nella tabella lato2) mentre quanto ne inserisci una non esistente vedi id_lato1 15 esce l'errore del DB engine.

    Perché? 

    Quando le tabella sono in relazione ed in essa hai impostato l'integrità referenziale, applichi tra esse un vincolo che ti impedisce di inserire righe "orfane" nel lato molti del record padre.

    Nel tuo scenario devi accertarti di non incappare in questo aspetto.

    questo quanto accade nella form se procedi con lo stesso metodo errato :

    HTH.

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento