Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Glaurung am Juni 08, 2011, 18:11:10

Titel: Alle verknüpften Tabellen per VBA löschen
Beitrag von: Glaurung am Juni 08, 2011, 18:11:10
Hallo,

ich habe eine mdb (Access 2003) drei Sorten Tabellen:
- lokale Tabellen
- Tabellen, die aus einer anderen mdb verknüpft sind
- Tabellen, die aus Oracle verknüpft sind
Um die Möglichkeit zu bieten, mal ordentlich aufzuräumen, möchte ich ein Makro anlegen, das mir alle aus Oracle (oder SQL-Server) verknüpften Tabellen löscht (um sie danach sauber neu verknüpfen zu können).

Natürlich wird dieses Makro irgendeine VBA-Funktion aufrufen, es ist halt als Makro leichter aufrufbar. Wie gehe ich per VBA alle Tabellen durch, um welches Merkmal der Tabelle zu untersuchen und auf dieser Grundlage entscheiden, sie wie zu löschen?

Ich bin für jede Hilfe dankbar.
Titel: Re: Alle verknüpften Tabellen per VBA löschen
Beitrag von: Hondo am Juni 08, 2011, 21:14:02
Hallo,
vieleicht hilft dir dies:
http://www.arstechnica.de/computer/msoffice/vba/vba0059.html
Titel: Re: Alle verknüpften Tabellen per VBA löschen
Beitrag von: Glaurung am Juni 09, 2011, 17:52:42
Danke, das ist doch mal ein Ansatz, auf dem man aufbauen kann. Wie ermittle ich nun, ob die Tabelle per ODBC verknüpft ist?
Titel: Re: Alle verknüpften Tabellen per VBA löschen
Beitrag von: Hondo am Juni 09, 2011, 18:36:07
Sieh dir doch mal die Tabelle MSysObjects an. (Eigenschaften/Systemelemente einblenden)
Dort findest du die Spalte Connect, die auskunft gibt ob eine eingebundene Tabelle vorhanden ist.
Bei ODBC steht dort DSN=.....

Andreas
Titel: Re: Alle verknüpften Tabellen per VBA löschen
Beitrag von: Glaurung am Juni 14, 2011, 15:45:55
Danke, ich versuch es mal.
Titel: Re: Alle verknüpften Tabellen per VBA löschen
Beitrag von: imp666 am Juni 14, 2011, 16:14:22
    Dim td As TableDef
    For Each td In CurrentDb.TableDefs
        If Left(td.Connect, 4) = "ODBC" Then
            ' Dann ist es eine ODBC-verknüpfte Tabelle
        End If
    Next
Titel: Re: Alle verknüpften Tabellen per VBA löschen
Beitrag von: Glaurung am Juni 30, 2011, 15:04:50
Hab's jetzt:

Public Function VerknüpfungenLöschen()
    Dim td As TableDef
    For Each td In CurrentDb.TableDefs
        If Left(td.Connect, 4) = "ODBC" Then
            Call DoCmd.DeleteObject(acTable, td.Name)
        End If
    Next
End Function