Namen von Abfragen prüfen
Ich habe mit Access 97 eine Datenbankanwendung entwickelt, wobei verschiedene Prozeduren mit der Methode »CreateQueryDef« Abfragen durchführen. Besteht die Möglichkeit, vor einer solchen Abfrage zu prüfen, ob bereits eine Abfrage mit dem vorgesehenen Namen vorhanden ist?
Die VBA-Funktion im Kasten unten tut dies und gibt im Fall einer Namensgleichheit den Wert »False« zurück. Bei einem Objekt des Typs »QueryDef« handelt es sich um die gespeicherte Definition einer Abfrage. Für jede Abfrage einer Datenbank von Access 97 existiert ein solches Objekt. Diese Objekte sind in der Auflistung »QueryDefs« des Datenbankobjekts zusammengefaßt.
Sobald in der Funktion ein »Database«-Objekt für die aktuelle Datenbank erzeugt ist, besteht die Möglichkeit, über die »QueryDefs«-Auflistung dieses Objekts auf die verschiedenen »QueryDef«-Objekte zuzugreifen. Das geschieht in einer For-Each-Schleife. Die Funktion durchläuft die Liste und vergleicht die Namen mit dem zu prüfenden Namen.
Listing »Abfrage«
Public Function istQueryNameEindeutig (name As String) As Boolean Dim Datenbank As Database, Query As QueryDef
Set Datenbank = CurrentDb istQueryNameEindeutig = True
Datenbank.QueryDefs.Refresh
For Each Query In Datenbank.QueryDefs If Query.name = name Then istQueryNameEindeutig = False Next Query End Function
CHIP-Code ABFRAGE
|