Benutzung auf eigene Gefahr ! |
Beschreibung |
Bei der Entwicklung einer neuen Datenbank kommt es gelegentlich dazu, dass man den Nachschlageassistenten mehrfach für die Verbindung der gleichen Felder einsetzt. Access zieht dabei jedes Mal eine einfach Beziehung, selbst wenn eine vorhandene Beziehung stärker ist (z.B. mit referentieller Integrität). Solche überflüssigen Beziehungen kann man mit dieser Abfrage erkennen um sie anschließend im Beziehungsfenster zu löschen. |
VBA-Quelltext |
SELECT IIf([szObject]<=[szReferencedObject], "[" & [szObject] & "].[" & [szColumn] & "] = [" & [szReferencedObject] & "].[" & [szReferencedColumn] & "]", "[" & [szReferencedObject] & "].[" & [szReferencedColumn] & "] = [" & [szObject] & "].[" & [szColumn] & "]") AS Beziehung, COUNT(*) AS Anzahl FROM MSysRelationships GROUP BY IIf([szObject]<=[szReferencedObject], "[" & [szObject] & "].[" & [szColumn] & "] = [" & [szReferencedObject] & "].[" & [szReferencedColumn] & "]", "[" & [szReferencedObject] & "].[" & [szReferencedColumn] & "] = [" & [szObject] & "].[" & [szColumn] & "]") HAVING COUNT(*)>1; |
Rückgabewert |
Die Abfrage gibt zwei Spalten zurück, eine mit der Beschreibung der verknüpften Spalten und eine Spalte für die Anzahl der Verknüpfungen. Es werden nur Verknüpfungen angezeigt, deren Anzahl größer als 1 ist. |
Hinweis |
Um diese Funktion als Abfrage in Access zu erstellen, geht man so vor:
|