Erzwingen Sie referenzielle Integrität mit verknüpfter Tabelle

609
Aiken

Ich baue und verwalte zurzeit eine Reihe von MS Access-Datenbanken, die Papierdokumentensysteme ersetzen sollen, an denen ich arbeite. Im Rahmen dieser Arbeit verwende ich einfache Benutzername / Passwort-Kombinationen anstelle einer Signatur im Dokument und möchte die Benutzername / Passwort-Kombination aller Dokumente beibehalten. Zu diesem Zweck habe ich eine separate Datenbank erstellt, die nur die Benutzerinformationen enthält das ist bei allen verschiedenen Dokumenten üblich.

Für jede Dokumentendatenbank möchte ich jedoch eine 'Berechtigungstabelle' haben, die eine Reihe von Ja / Nein-Feldern enthält, die festlegen, welche Berechtigungen ein Benutzer für dieses bestimmte Dokument hat. Natürlich möchte ich die referentielle Integrität zwischen der Berechtigungstabelle beibehalten und die Benutzertabelle. Alle betroffenen Datenbanken werden auf einem gemeinsam genutzten Laufwerk gespeichert.

Zuerst dachte ich, dass ich in WhateverDoc.mdb eine Verknüpfung mit der Tabelle tblUsers in Users.mdb herstellen und dann eine Eins-zu-Eins-Beziehung zwischen dem Benutzernamenfeld von tblUsers und tblPermissions erstellen könnte, aber es scheint, dass ich keine referenzielle Durchsetzung erzwingen kann Integrität beim Erstellen einer Beziehung mit einer verknüpften Tabelle.

Gibt es eine Problemumgehung dafür? Ich bin offen für Lösungen mit VBA, aber ich dachte, ich würde hier eher fragen als StackOverflow, da dies keine spezielle Programmierfrage ist.

0

2 Antworten auf die Frage

0
Aiken

Lösung, die ich derzeit verwende:

Wählen Sie im Tabellenentwurf für TblPermissions das Feld Benutzer aus, und legen Sie dann auf der Registerkarte Nachschlagen für die Feldoptionen die folgenden Optionen fest.

Display Control: Combo Box Row Source Type: Table/Query Row Source: SELECT Username FROM tblUsers; Limit To List: Yes 

Dadurch wird verhindert, dass das Benutzerfeld in tblPermissions einen Wert enthält, der nicht im Feld Benutzername von tblUsers enthalten ist, da die Option "Auf Liste begrenzen" für die entsprechende Zeilenquelle auf "Ja" gesetzt ist.

0
leach613

Erstellen Sie eine Backend-Datenbank mit allen Ihren Tabellen und stellen Sie die Beziehungen zu dieser Datenbank her. Verknüpfen Sie dann alle Tabellen im Backend mit Ihrer Frontend-Datenbank, die alle Formulare, Abfragen und Code enthält.