Newsgroup: it.comp.appl.access
Titolo: ancora sulle relazioni.

Ciao, ho appena fatto un esperimento.
Ho due tabelle Clienti e OrdiniClienti così strutturate:
Clienti
IDCliente              Contatore e Chiave Primaria
Nome                   Testo
SecondoNome     Testo
Cognome              Testo
Indirizzo                Testo
Città                      Testo
StatoOProvincia    Testo
CAP                     Numerico
Paese                    Testo
NumeroTelefonico Numerico
OrdiniClienti
IDOrdine               Contatore e Chiave Primaria
IDCliente                Numerico e Chiave Esterna
IDNegozio              Numerico
DataOrdine             Data/Ora
NomeSpedizione    Testo
IndirizzoSped          Testo
CittàSped                Testo
StatoOProvinciaSped   Testo
CAPSped                     Testo
NazioneSped                 Testo
TelefonoSped                 Numerico
Pagamediante                 Numerico------->Descrizione: da 1 a 6 in base
al tipo di CC utilizzata.
NumeroCC                    Testo-------->Descrizione: nemro carta di
credito
Stampato                        SI/NO
Succede che creo una relazione tra le due tabelle collegando i due campi
IDCliente presente nelle due tabelle, ma l'integrità referenziale non la
posso applicare perchè mi appare il messaggio di errore
"Impossibile creare la relazione ed applicare l'integrità referenziale. I
dati nella tabella 'OrdiniClienti' violano le regole di integrità
referenziale. E' possibile, ad esempio, che siano presenti dei record
relativi ad un impiegato nella tabella correlata ma non nella tabella
primaria. Modificare i dati in modo che esistano record primari per tutti i
record correlati. [...]"
Se invece collego i campi IDCliente della tabella Clienti e IDOrdine della
tabella Ordini ottengo una relazione uno-a-uno e posso applicare l'integrità
referenziale, MA NON POSSO SELEZIONARE 'Aggiorna campi a catena' e/o
'Elimina record correlati a catena'. Se ci provo ottengo l'errore 3409.
Aiutami ti prego, non ci sto capendo niente!!!! Ma quando posso applicare
l'integrità con le due opzioni? E perchè l'errore 3409? Il campo è digitato
correttamente e non è un campo memo o un oggetto OLE!!!!
Grazie ancora!
"

 ha scritto nel messaggio
news:QYVN6.16590$Ql3.7...@news.infostrada.it...

Il contenuto delle tabelle è incoerente, ovvero, quando non avevi
l'integrità referenziale hai registrato nella tabella OrdiniClienti dei
record a fronte di clienti inesistenti, quindi ora Access si rifiuta
(giustamente) di aggiungere l'integrità referenziale.
Quindi devi cancellare TUTTI i record della tabella OrdiniClienti; solo dopo
riuscirai ad aggiungere alla relazione l'integrità referenziale con le sue
relative opzioni.
A questo punto comincia ad inserire nuovamente i record, avendo cura di
inserire prima il record cliente e poi record ordine.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 inserire prima il record cliente e poi record ordine.
Infatti.....io ho alcuni record con dei nomi e altri record  - nella tabella
correlata - con altri valori.
Cavolo!!!! Grazie infinite...ti giuro per me sei un mito, non so come
ringraziarti che diamine!
Ciao, alla prossima!