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

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

Eingebundene Tabellen löschen

Sprache / Programm: Access ab Version 95
Beschreibung

Löscht alle eingebundenen Tabellen.

VBA-Quelltext
Public Function VerknüpfungenLöschen(Optional DatenBank As Database, Optional Alle As Boolean)
    Dim ListeTab As DAO.Recordset, Tabelle As DAO.TableDef
   
    On Error GoTo FehlerBeimLöschen
    If DatenBank Is Nothing Then Set DatenBank = CurrentDb
    Set ListeTab = DatenBank.OpenRecordset("SELECT * FROM MSysObjects WHERE [Type]=6")
   
    ' Tabellen nach fehlerhaften Verknüpfungen durchsuchen
    While Not ListeTab.EOF
        If Not Alle Then
            If Dir$(ListeTab![Database], vbReadOnly + vbSystem + vbHidden) <> "" Then
                For Each Tabelle In DBEngine.OpenDatabase(ListeTab![Database], , True).TableDefs
                    If Tabelle.Name = ListeTab![ForeignName] Then GoTo NächsteTabelle
                Next Tabelle
            End If
        End If
        DoCmd.DeleteObject acTable, ListeTab![Name]
       
NächsteTabelle:
        ListeTab.MoveNext
    Wend
    ListeTab.Close
   
Exit Function

FehlerBeimLöschen:
    MsgBox Err.Description
    ListeTab.Close
End Function
Argumente der Funktion/Prozedur

DatenBank

Gibt an, in welcher Datenbank die eingebundenen Tabellen gelöscht werden sollen

Alle

TRUE = alle eingebundenen Tabellen werden gelöscht

FALSE = Nur fehlerhafte Verknüpfungen werden gelöscht (z.B. bei fehlender Quelldatenbank)

Anwendungsgebiete, Fehler und Warnungen

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. 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.