VBA Tipp: Exklusiven Öffnungsmodus einer Datei ermitteln

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Ich möchte herausfinden, ob eine bestimmte Datei (Datenbank) exklusiv geöffnet ist.

Lösung

Das leistet die folgende Funktion:

Public Function IstDateiExklusiv(Optional Dateipfad As String) As Boolean
 
   ' Quelle: http://www.dbwiki.net/
 
   Dim fNum As Integer
 
   If Dateipfad = vbNullString Then
      Dateipfad = CurrentDb.Name
   End If
 
   fNum = FreeFile
 
   On Error Resume Next
 
   Open Dateipfad For Binary Access Read Write Shared As fNum
   If Err = 70 Then
      IstDateiExklusiv = True
   End If
 
   Close fNum
 
End Function

Aufruf

Um herauszufinden, ob die aktuelle Datenbank exklusiv geöffnet wurde:

   MsgBox "Die Datenbank ist " & _
          IIf(IstDateiExklusiv, "", "nicht") & _
          " exklusiv geöffnet."

Um herauszufinden, ob eine andere Datenbank exklusiv geöffnet wurde:

   MsgBox "Die Datenbank ist " & _
          IIf(IstDateiExklusiv(CurrentProject.Path & "\EineDatei.dat"), "", "nicht") & _
          " exklusiv geöffnet."