title image


Smiley Lösungsvorschlag & Bonusfrage meinerseits inside!
Das könntest Du hiermit machen:





Public Function GetMSysObjectsType(strName As String) As Integer

Dim rst As DAO.Recordset

On Error GoTo GetMSysObjectsTypeErr

GetMSysObjectsType = 0

Set rst = CurrentDb.OpenRecordset("SELECT Type FROM MSysObjects WHERE Name = '" & strName & "'")

If rst.RecordCount > 0 Then

GetMSysObjectsType = rst(0)

rst.Close

End If

GetMSysObjectsTypeExit:

Set rst = Nothing

Exit Function

GetMSysObjectsTypeErr:

GetMSysObjectsType = 0

Resume GetMSysObjectsTypeExit

End Function





Die Function bekommt als Parameter den Namen des zu analysierenden Objektes (hier: einer Tabelle) übergeben.



Rückgabewerte der Function:

0 --> Fehler aufgetreten oder Objekt nicht gefunden

1 --> Objekt ist eine lokale Tabelle

4 oder 6 --> Objekt ist eine externe Tabelle (weitere möglich?)

5 --> Objekt ist eine Abfrage

-32768 --> Objekt ist ein Formular

-32764 --> Objekt ist ein Bericht

-32766 --> Objekt ist ein Makro

-32761 --> Objekt ist ein Modul



Aufruf also etwa so:





MsgBox GetMSysObjectsType("tblDeineTabelle")







Es gibt noch weitere Ausprägungen des Feldes "Type" in der Systemtabelle MSysObjects; ich bin seit längerer Zeit auf der Suche nach einer vollständigen Dokumentation dieser Types, weswegen ich nicht mit letzter Sicherheit sagen kann, ob die Types 4 und 6 die einzigen sind, die externe Tabellen kennzeichnen (in meinen Tests wird das bei eingebundenen Access-Tabellen und bei eingebundenen DB2-Tabellen zurückgegeben). Wenn jemand eine brauchbare Referenz für die MSysObjects zur Hand hätte (respektive einen Link dorthin) wäre ich sehr dankbar! ;o)



Gruß,

Eric

Spotlight-Kicktipp gestartet!

Steig ein und trete mit Deinem Bundesliga-Tipp gegen die Besten an! :o)

http://www.kicktipp.de/spotlight/



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: