Newsgroup: it.comp.appl.access
Titolo: access can't enforce referential integrity

Salve a tutti
Ho il sopracitato messaggio d'errore quando provo a creare una
relazione fra le seguenti due tabelle:
oggetto con chiave primaria p_strm e oggetto_collegato con con due
chiavi secondarie f_strm_p e
f_strm_s
Quello che voglio è ovviamente l'integrità referenziale fra p_strm e
f_strm_p e p_strm e f_strm_s,
solo che access non me lo fa fare e non capisco perchè..
La tabella 'oggetto_collegato', in tutti e due i campi, deve avere
valori che si riferiscano alla chiave primaria di 'oggetto'
Qalcuno sa come posso fare?
Grazie per l'attenzione

fazf...@gmail.com
 ha scritto:

la tabella figlia contiene records? se SI: rispettano l'integrità?
Stai agendo sul DB che contiene le tabelle o solo su uno che le ha 
collegate ?
illustraci il tuo scenario, grazie
IvanDaBologna

 
fazfa...@gmail.com
 ha scritto:> Salve a tutti

e' un normale db che contiene le tabelle, la tabella oggetto contiene
gia record mentre la tabella oggetto_collegato
no, la sto definendo in struttura ed è qui che ho incontrato questo
problema dell'integrita' referenziale... sembra che il fatto
che due campi distinti della tabella figlia siano legati dallo stesso
campo della tabella padre crei qualche problema ad access
Spiego meglio quello che voglio ottenere con la tabella figlio
oggetto_collegato:
voglio che contenga dei record del tipo f_strm_p = 323 e f_strm_f =
434
dove ovviamente quei codici sono codici riferiti ad un record
esistente nella tabella padre oggetto
Cosi', se ad esempio ho la tabella figlia oggetto_collegato:
f_strm_p        f_strm_s
1                   21
1                   45
4                   14
4                   1
nella tabella padre oggetto devo avere i seguenti record:
p_strm           ...altri campi
1                       ....
4                      .....
21                    .....
45                    .....
come gia detto p_strm è chiave di oggetto
(la chiave di oggetto_collegato saranno ambedue gli attributi f_strm_s
e f_strm_p, cosi che non ci siano anomalie in aggiornamento)
Ripeto il problema: access non mi fa creare i vincoli di integrità
referenziale fra p_strm e f_strm_s e p_strm e f_strm_p
se faccio una sola relazione da p_strm a f_strm_s allora mi fa
applicare l'integrita' referenziale, ma se provo a fare le due
relazioni p_strm -> f_strm_s E p_strm -> f_strm_p, allora niente
integrità referenziale
Spero di essere stato chiaro!

 ha scritto nel messaggio 
news:de054e17-f74e-4a7c...@z6g2000pre.googlegroups.com...






in pratica tu vorresti che da uno stesso campo ci fossero due campi 
relazionati con integrità referenziale in una tabella secondaria i quali 
possono essere diversi tra loro?
ciao Max

 ciao Max
Esatto
Forse vi chiedete perchè? Mo ve lo spiego :)
Ogni oggetto puo' essere formato da piu' oggetti "secondari",
anch'essi identificati da un record nella tabella oggetto
mi serve percio' un meccanismo per collegare ogni oggetto con i suoi
eventuali oggetti secondari

 ciao Max
Esatto
Forse vi chiedete perchč? Mo ve lo spiego :)
Ogni oggetto puo' essere formato da piu' oggetti "secondari",
anch'essi identificati da un record nella tabella oggetto
mi serve percio' un meccanismo per collegare ogni oggetto con i suoi
eventuali oggetti secondari
vediamo se funziona
inserisci due volte la tabella padre nelle relazioni, poi una volta colleghi 
il campo p_strm  col campo f_strm_p e un'altra col campo f_strm_s
se la tabella padre serve solo al cambio di nome dovrebbe fungere
ciao
max 

 max
Bravo cosi' funziona!
Non è che pero' succedono casini? Considerato che la tabella oggetto
ha altre relazioni con altre tabelle.. non occorre che la ricreo tutte
le relazioni sulla seconda istanza della tabella oggetto, giusto?
Grazie mille per la soluzione

 max
Bravo cosi' funziona!


 max
Bravo cosi' funziona!
Non � che pero' succedono casini? Considerato che la tabella oggetto
ha altre relazioni con altre tabelle.. non occorre che la ricreo tutte
le relazioni sulla seconda istanza della tabella oggetto, giusto?
Grazie mille per la soluzione
la premessa te l'ho fatta, se ti serve solo per cambiare nome o eliminare 
articoli funziona
se gi� cerchi di creare una query avrai problemi, devi anche qui rifare la 
stessa procedura (fare il join su due tabelle padre)
sulle altre tabelle non dovresti avere nessun tipo di problema
ciao
max