[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Existenz einer Tabelle/Abfrage überprüfen

Sprache / Programm: Access ab Version 97
Beschreibung

Das Programm prüft, ob in der aktuellen Datenbank oder in einer anderen Datenbank eine Tabelle oder Abfrage existiert.

VBA-Quelltext
Public Function RecordSetExistiert(NameRecordSet As String, Optional DatenBank As String = "") As Boolean
    Dim RecordSet As Object, DB As DAO.Database
    On Error GoTo ExistiertNicht
    If DatenBank = "" Then
        Set DB = CurrentDb
    Else
        ' Existiert die Datenbank-Datei ?
        If Dir$(DatenBank, vbHidden + vbReadOnly + vbSystem) = "" Then GoTo ExistiertNicht
        Set DB = OpenDatabase(DatenBank)
    End If
   
    RecordSetExistiert = True
    ' Namen aller Tabellen überprüfen
    For Each RecordSet In DB.TableDefs
        If RecordSet.Name = NameRecordSet Then Exit Function
    Next RecordSet
    ' Namen aller Abfragen durchsuchen
    For Each RecordSet In DB.QueryDefs
        If RecordSet.Name = NameRecordSet Then Exit Function
    Next RecordSet
   
ExistiertNicht:
    RecordSetExistiert = False
End Function
Argumente der Funktion/Prozedur

NameRecordSet

Name der Tabelle bzw. Abfrage als Text ohne begrenzende Klammern [ ]

DatenBank

Vollständiger Pfad und Dateiname zu einer externen Datenbank. Falls dieses Argument nicht übergeben wird, sucht die Funktion in der aktuellen Datenbank nach der Tabelle bzw. Abfrage
Verwendete Variable

Objekt

Tabelle oder Abfrage als Objekt

Auflistung

Die Auflistung TableDefs (Tabellen) oder die Auflistung QueryDefs (Abfragen)
Rückgabewert

Wahrheitswert, der angibt, ob eine Tabelle oder Abfrage mit diesem Namen existiert.

Hinweis

Die gleichzeitige Vergabe eines Namens an eine Tabelle und an eine Abfrage ist in Access nicht möglich. Daher müssen immer sowohl die Namen aller Tabellen als auch aller Abfragen überprüft werden.

Bei der Überprüfung werden auch ausgeblendete Tabellen/Abfragen, eingebundene und Systemtabellen überprüft.

Anwendungsgebiete, Fehler und Warnungen

Bei Abfragen wird nicht überprüft, ob sich diese auch ausführen lassen. Die Namen von Tabellen / Abfragen dürfen kein " enthalten. Bei Access 2000 darf nach dem Schlüsselwort 'Optional' im Funktionskopf auch ein Typ stehen. Bei älteren Access-Versionen muss die Typdeklaration As String nach Optional DatenBank gelöscht werden. Verwendet die DAO Objektbibliothek. Ab Access 2000 muss diese explizit im VBA-Editor über 'Extras' -> 'Verweise' als 'Microsoft DAO 3.6' (oder höher) eingebunden werden und vor die 'Microsoft ADO 2.1' (oder höher) Bibliothek gesetzt werden.