Prüfen, ob eine best. Tabelle existiert

Hallo Experten!

Wie kann man in Access (per VBA?) prüfen, ob eine Tabelle existiert?

Folgendes Vorhaben: Beim Öffnen eines Formulars (nennen wir es mal Hauptmenü) soll überprüft werden, ob eine bestimmte Tabelle bereits existiert. Darauf basierend sollen bestimmte selbstdefinierte Buttons in diesem Hauptmenü aktiviert bzw. deaktiviert werden, sodaß nur dann darauf geklickt werden kann wenn eben die Tabelle existiert. Wie kann man sowas machen?

Ich versuche die Datenbank „idiotensicher“ zu machen, damit niemand meiner Kollegen wild darin herumklickt und evtl. Schaden anrichtet…

Bin für jeden Tipp dankbar!!!

Gruß,

Werner Weiss

Hi!

Spintan fallen mir zwei Möglichkeiten ein…

die erste ist dummy, aber effektiv ;o)) Mache eine sql-Anweisung auf die Tabelle und wenn ein Error kommt gibt es die Tabelle halt net - den Fehler musste natürlich abfangen…

die zweite ist die tabeldefs durchzugehen wo alle Tabellen aufgelistet sind - so in etwa … for each table in tabledefs…die genaue Syntax findest bestimmt in der Hilfe…

Gruß

Bernd

Zunächst mal recht vielen Dank für die Anregungen (die ich leider -noch- nicht umzusetzen weiss, da ich nicht so firm in Access bin)! Ich hatte mir eigentlich was viel einfacheres vorgestellt, so wie anno dazumal in DOS: if exist Tabelleblablabla then … Aber das ist wohl leider nicht machbar… oder doch??? Immerhin weiss ich schonmal, wie man es hinbekommt, dass ein Button deaktiviert wird, wenn das Formular geladen wird… (Me!button_name.Enable=True oder False)

Nochmals vielen Dank!

Werner

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo
Das folgende aus der KnowHow30.mdb
ist für Access 97 …evtl. also anpassen

Das folgende kommt in ein Modul

…schnipp…

Function table_exist(TableName As String) As Boolean
'**********************************************************************************
'Function Table_Exist()
'Prüft, ob die Tabelle in der MDB vorhanden ist
'auch für eingebundene Tabellen oder Queries

'Rückgabe: TRUE, tbl ist vorhanden oder eingebunden
’ FALSE, tbl ist nicht vorhanden
'**********************************************************************************

Dim DB As DATABASE
Dim tbl As Recordset
Dim Nix

On Error GoTo table_exist_error

Set DB = CurrentDb
Set tbl = DB.OpenRecordset(TableName)
table_exist = True
Set tbl = Nothing
Exit Function

table_exist_error:
table_exist = False
Set tbl = Nothing
Exit Function

End Function

…schnapp…

aufgerufen wird dann mit z.B

If table_exist(meineTabelledieirgendwieheisst) Then
blablabla
End If

Stefan

http://www.donkarl.com/FAQ/FAQ3TAbfragen.htm#3.4 (FAQ 3.4)

Gruß aus dem Norden
Reinhard Kraasch
(http://www.kraasch.de - Access Tipps & Tricks)