Newsgroup: it.comp.appl.access
Titolo: errore in immissione dati (tabelle correlate)

Ciao a tutti.
Sono da poco impegnato nell'uso di Access, quindi perdonatemi se la
domanda piu' sembrare banale.
Devo inserire una serie di dati, che sono organizzati su 3 tabelle,
per es.
tabella1 tabella2 e tabella3, e ho impostato delle relazioni tra le
tabelle.
Piu' in particolare le tabelle sono correlate mediante dei campi
numerici, per es:
tabella1	tabella2	tabella3
ID_a		ID_b		ID_c
ID_b		...		...
...		ID_c		...
Per cui facendo poi il JOIN ottengo tutta l'informazione che mi
interessa.
Ma quando creo la maschera per l'immissione(o anche quelle fatte
con l'autocomposizione guidata) e metto dei dati, poi mi dice
"Impossibile aggiungere o modificare il record. Nella tabella
'tabella3' e'
necessario un record correlato"
Qual e' il problema e come posso risolverlo?
Grazie a chi mi vorra' rispondere.

 ha scritto nel messaggio 
news:f70e10b3-6eb3-4788...@o32g2000prb.googlegroups.com...

Benvenuto
effettivamente dovresti spiegare meglio le relazioni tra le tabelle.
L'errore segnalato significa che per poter aggiungere un record nella 
tabella3 devi avere la stessa chiave anche nella tabella padre relazionata.
Ti faccio un esempio: TabellaFatture e tabella DettagliFattura in relazione 
1 a molti tra i campi NFattura e Fattura (di dettagli); se aggiungi un 
record alla tabella DettagliFattura senza aver indicato l'Nfattura esistente 
otterrai quell'errore.
Dunque riguarda bene le relazioni e se non trovi soluzione, riposta con 
dovizia di particolari.
Ciao, Carlo 

 otterrai quell'errore.
Si, ci avevo pensato anch'io a una cosa del genere, ma il fatto e' che
questi
 ID sono dei contatori, e quando faccio un nuovo record come faccio a
sapere
quale numero il sistema assegna a questi contatori (specialmente con
diversi
inserimenti e cancellazioni in mezzo)?
Ti descrivo piu' in dettaglio la cosa e speriamo che tu mi possa
aiutare:
si tratta di una base di dati per l'inserimento di dati relativi ad
esami clinici di pazienti.
Ho queste tabelle:
paziente
==========
ID_paziente (contatore)
...(altri dati relativi al paziente)...
operatore
===========
ID_operatore (contatore)
....(altri dati relativi all'operatore della macchina)...
esami
============
ID_esame (contatore)
ID_paziente (numerico)
Data_esame
Tipo_esame
indagine
============
ID_esame (numerico)
ID_operatore (numerico)
...(altri dati relativi all'esame)
(si si, so che non e' esattamente in forma normale ma l'utilizzatore
non
era molto chiaro e ha aggiunto DOPO altre cose da fare)
*RELAZIONI*
esami<-->indagine in relazione 1 a 1 (mediante ID_esame)
paziente<-->esami uno-a-molti (mediante ID_paziente)
operatore<-->indagine uno a molti  (mediante ID_operatore)
A tutte queste relazioni si applica l'integrita' referenziale
(e anche "Aggiorna campi correlati a catena" e "Elimina record
correlati a catena").
Spero di non aver dimenticato nulla.
E spero che tu mi possa aiutare perche' ci sto ammattendo.
Grazie.

 ha scritto nel messaggio 
news:aa4009bd-ee00-4705...@s3g2000vbf.googlegroups.com...

Ora � un po' pi� chiaro.
La prima domanda da porsi � questa: qual'� la tabella principale intorno 
alla quale gira tutto il database e per le finalit� scelte?
Mi pare di capire che sia la tabella Pazienti.
Bene. Dunque il primo record da inserire � certamente il paziente (lato uno 
delle future relazioni). Ogni paziente far� uno o pi� esami dunque la 
tabella esami dovr� avere oltre il proprio indice univoco, anche l'ID del 
paziente (tipo numerico) con una relazione uno a molti (qui ci sei perch� 
hai impostato bene la relazione: uno a molti integrit� referenziale, elimina 
record correlati...). La stessa cosa va fatta tra le tabelle Esami e 
Indagini (sempre uno a molti) anche se non mi � chiara questa cosa. Esami e 
indagini dovrebbero essere la stessa cosa.
Il flusso dovrebbe essere: inserire un paziente, aggiungere un esame (qui 
Access mette in automatico l'idpaziente nella tabella esami); infine 
aggiungere l'indagine e anche qui Access inserisce l'idesame in automatico 
(sempre che tu abbia impostato "Aggiorna campi correlati a catena" e 
"Elimina record  correlati a catena" nella relazione tra Esami e Indagini).
Questo flusso di inserimento � obbligatorio. Elimando un paziente si 
eliminano gli esami e le indagini, non il contrario. Rimane ballerino 
l'idoperatore perch� non si capisce se si riferisce all'operatore che esegue 
l'esame, l'indagine o una eventuale Visita o Accesso.
Dimmi se ci sei fin qui.
Ciao, Carlo 

 Ciao, Carlo
Si ok ci sono.
L'operatore fa' l'esame, cioe' e' alla macchina dell'esame.
Esame e indagine e' la stessa cosa hai ragione, ma come dicevo prima
mi sono state dette dopo delle cose e ho dovuto aggiustare in corso
d'opera
con una patch. Puoi considerare una unica tabella esame e indagine.