1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Problemstellung:

Wie ermittle ich ein DB-Objekt in einer fremden DB?

Public Function ForeignExistObject(strDBPfad As String, _
                                   strObjektname As String, _
                                   Typ As Integer, _
                                   Optional strPasswort As String = "") _
                                   As Boolean
'*******************************************
'Name:      ForeignExistObject (Function)
'Purpose:   ermittelt ob ein Objekt in einer anderen DB existiert
'Author:
'Date:
'Inputs:    Objektname = Name des Objektes, Typ = ObjektTyp,
'           strPasswort=DB-Kennwort
'Output:
'*******************************************
On Error GoTo Err
    Dim wsp As DAO.Workspace
    Dim db As DAO.Database
    Dim rs As Recordset
    Dim ObjTyp As Integer
    Dim strPWD As String
    strPWD = ";pwd=" & strPasswort
    Set wsp = DBEngine.Workspaces(0)
    Set db = wsp.OpenDatabase(strDBPfad, False, False, strPWD)
    ForeignExistObject = False
    Select Case Typ
      Case 0: ObjTyp = 1      'Tabellen
      Case 1: ObjTyp = 5      'Abfragen
      Case 2: ObjTyp = -32768 'Formulare
      Case 3: ObjTyp = -32764 'Berichte
      Case 4: ObjTyp = -32766 'Makro
      Case 5: ObjTyp = -32761 'Module
      Case 6: ObjTyp = 6      'eingebundene Tabellen
      Case 7: ObjTyp = 4      'eingebundene ODBC-Tabellen
      Case 8: ObjTyp = -32756 'Datenzugriffseite
    End Select
    Set rs = dba.OpenRecordset("SELECT Name, Type FROM MSysObjects " & _
                               "WHERE Name = '" & Objektname & "' " & _
                               "AND   Type = " & ObjTyp)
    If Not rs.EOF Then rs.MoveLast
    ForeignExistObject = IIf(rs.RecordCount = 0, False, True)
    rs.Close
    Set rs = Nothing
    db.Close
    Set db = Nothing
  
ExitHere:
    Exit Function
Err:
    Dim strErrString As String
    strErrString = "Error Information..." & vbCrLf
    strErrString = strErrString & "Error#: " & Err.Number
    strErrString = strErrString & "Description: " & Err.Description
    MsgBox strErrString, vbCritical + vbOKOnly, _
           "Error in Function: ForeignExistObject"
    Resume ExitHere
End Function

Der Funktion wird der komplette Pfad und Dateiname der MDB-Datei, der Objektname und
der -Typ übergeben.
Optional noch das DB-Kennwort wenn vorhanden.
Der Rückgabewert ist True bei Objekt vorhanden sonst False

Aufruf:

Dim x As Boolean
x = ForeignExistObject("C:\Test\Test.mdb", "frm_Test", 2)

Ist das Formular"frm_Test" in der DB C:\Test\Test.mdb vorhanden ist x = True

Ähnliche Artikel

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool "SmartTools SQL aus Abfragen 3.0"...
1.png2.png1.png2.png7.png5.png5.png
Heute55
Gestern105
Diese Woche263
Dieser Monat1555
Total1212755

  • IP: 52.55.177.115
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

3
Online

19. Dezember 2018

Letzte Kommentare

  • Trusted Locations Manager

    Tommy Admin 13.07.2018 13:06
    RE: Trusted Locations Manager
    Hallo Matthias, aus Ermangelung einer 64bit Version kann ich das leider nicht prüfen. Tut mir leid. Gruss ...

    Weiterlesen...

     
  • Trusted Locations Manager

    Matthias 13.07.2018 06:48
    Funktioniert nicht
    Habe gerade den TL-Manager installiert. Nach dem Start sagt er mir, dass es kein Office erkennen ...

    Weiterlesen...