I am not sure whether I misunderstood your post or not but your post seems
to say the reverse from what I wrote.
Let me clarify the R. I. : when you create a relationship between 2 Tables
in a One- to-Many relationship, i.e. the ForeignKey Field in the Many
(Child) Table corresponds to the PK in the One (parent) Table, you have 2
options (mutually exclusive):
Option 1 - R.I. not used / enforced: In this case, you can enter anything
in the ForeignKey Field (valid data type, of course) and Access (JET
actually) will accept without checking. In this case, you can create
orphaned Child Records, i.e. Invoice Items without a corresponding Invoice
Header Record.
Option 2 - R.I. enforced: In this case, whenever you enter a value in the
ForeignKey Field of a Child Record and update the Child Record into the Many
/ Child Table, JET will check to ensure that there *exists* a One / Parent
Record that has the PK Field value exactly the same as the ForeignKey value
of the Child Record being saved. This will ensure that the user can't
create Child / Many Records without a valid Parent Record.
If you select the option 2 above (R.I. enforced), you can then select 2 more
*sub*options which are not mutually exclusive, i.e. you can select no
sub-option, 1 sub-option or both sub-options:
Sub-option 2.1 - "Cascade Update Related Records": This means that if you
change the PK value of the One / Parent Record, the ForeignKey values of the
related Many / Child Records will be changed automatically to the same value
as the PK value so that they are still linked to the same old One / Parent
Record even thought the PK value has been changed.
In Tables where the PK Field is an AutoNumber Field, the "Cascade Update
Related Field" in not nrcessary since you cannot change the value of the PK
/ AutoNumber Field.
Sub-option 2.2 - "Cascade Delete Related Records": This means that if you
delete the One / Parent Records, JET will automatically delete all Child
Records that are related to the deleted One / Parent Record.
Sub-option 2.2 is a bit of a danger as John & I pointed out previously.
Basically:
# (main) option 2 prevents the user from *creating* orphaned Child Records,
i.e. creating Child Records without (valid) Parent Records.
# Sub-option 2.1 tries to maintain the correct linking (in case the user
change the PK value and forget to change the corresponding FK values).
# Sub-option 2.2 prevent the user from *leaving* orphaned Child Records in
the database.