PDA

Vollständige Version anzeigen : VBA - Erkennung bestehender Tabellen


Hubertus
27.06.2001, 11:43
Hallo,

ich habe eine kleinere Access-Datenbank in der hin und wieder Tabellen erstellt oder gelöscht werden. Nun möchte ich mir die Arbeit mit VBA ein bischen leichter machen.

Ich möchte bestehende Tabellen durch den VBA-Code löschen lassen, dafür möchte ich aber vorher prüfen lassen, ob die zu löschende Tabelle besteht, um evtuelle Fehler zu vermeiden.
Kann mir jemand den VBA-Code verraten, mit dem das geht?

Vielen Dank
Hubertus

Morli
27.06.2001, 11:46
Hallo Hubertus,

das geht z.B. mit

Dim tbl as TableDef

For Each tbl in CurrentDB.TableDefs
Debug.Print tbl.Name
'If tbl.Name = "zu löschende Tabelle" Then
'tbl.Delete
'Endif

Next

Gruß

Rainer :)

A.S.
27.06.2001, 11:53
Hallo Rainer,
Hallo Hubertus,

so, hier kann ich jetzt aber mein Coding von gestern OnTopic anbringen :D :D

Public Const tpTblNrm As Integer = 1 ' normale Tabellen
Public Const tpTblInB As Integer = 6 ' eingebundene Tabelle
Public Const tpTable As Integer = 99 ' in beiden Tabellentypen suchen
Public Const tpForm As Integer = -32768 ' Formulare
Public Const tpMacro As Integer = -32766 ' Makros
Public Const tpModul As Integer = -32761 ' Module
Public Const tpReport As Integer = -32764 ' Berichte

Public Function AccObjectExists(strName As String, intType As Integer) As Boolean
'Anhand der Systemtabelle MSysObjects prüfen ob das gesuchte Objekt unter
'Berücksichtigung des Typs vorhanden ist
AccObjectExists = IsNull(DLookup("[Name]", "MSysObjects", "[Name] = '" & Trim(strName) & _
"' AND (Type = " & IIf(intType = tpTable, tpTblNrm & " OR Type = " & _
tpTblInB, intType) & ")")) = False
End Function

Aufruf in Deinem Fall, Hubertus, mit

If AccObjectExists("tblWelcheTabelle",99) Then
.
.
.
End If

------------------
HTH

Arno