Nach bestem Wissen und Gewissen, Zugang DDL einfach nicht die Schaffung eines Access „Relationship“ unterstützt ohne „referentielle Integrität“. CREATE CONSTRAINT
erstellt eine Beziehung mit "referenzielle Integrität erzwingen", denn genau das ist eine solche Beziehung: eine referenzielle Integrität Einschränkung.
(Die ON UPDATE
und ON DELETE
Klauseln CREATE CONSTRAINT
Steuerung der Werte der „Cascade Update-verwandten Gebiete“ und „Cascade Delete Related Records“ Kontrollkästchen in den Beziehungen bearbeiten Dialog, aber sie haben keine Kontrolle über den Wert der „referentielle Integrität "Kontrollkästchen selbst."
Mit anderen Worten, eine Beziehung ohne "referenzielle Integrität erzwingen" ist überhaupt keine Einschränkung. Es ist lediglich ein "Hinweis", dass die Tabellen über die angegebenen Felder in Beziehung stehen, z. B. so, dass der Abfrage-Generator automatisch den Tabellen beitreten kann, wenn sie dem Abfrageentwurf hinzugefügt werden.
Um eine Beziehung ohne "referenzielle Integrität erzwingen" zu erstellen, müssen Sie Access DAO verwenden. Für eine Beziehung wie diese
den erforderlichen Code in VBA würde
Option Compare Database
Option Explicit
Public Sub CreateRelationship(relationshipName As String, _
parentTableName As String, childTableName As String, _
parentTablePkName As String, childTableFkName As String)
Dim cdb As DAO.Database
Set cdb = CurrentDb
Dim rel As DAO.Relation
Set rel = cdb.CreateRelation(relationshipName, parentTableName, _
childTableName, dbRelationDontEnforce)
rel.Fields.Append rel.CreateField(parentTablePkName) ' parent PK
rel.Fields(parentTablePkName).ForeignName = childTableFkName ' child FK
cdb.Relations.Append rel
Set rel = Nothing
Set cdb = Nothing
End Sub
Ich denke, beide Relationen sind 1-zu-viele-Beziehungen, wie in der Edit-Relations-Box im unteren angezeigt ... was Sie suchen, ist am Ende 'ON UPDATE SET NULL ON DELETE SET NULL' anhängen? – luk2302
Die referenzielle Integrität wurde in meiner ursprünglichen Beziehung nicht überprüft. Nach verschiedenen Ansätzen gab ich auf. – profimedica
Wenn Sie wollen eine Beziehung zwischen diesen Tabellen ohne referentielle Integrität, kann ich nichts anderes als Join auf salID und CliIDPK denken, –