Tipp 1.14 - Ist DB exklusiv

Wie kann ich ermitteln, ob die angegebene DB exklusiv geöffnet ist?

Mit dieser Funktion können Sie ermitteln, ob die angegebene DB exklusiv geöffnet ist. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

Beispiel:

Option Explicit
 
Public Function A2XIsDBOpenExclusive( _
                Optional psDBNamePath _
                As String = vbNullString) _
                As Integer
  '// =====================================================
  '// Methode   | Ermittelt, ob die angegebene bzw.
  '//           | die aktuelle DB exklusiv geöffnet ist
  '// -----------------------------------------------------
  '// Parameter | psDBNamePath - Optional, Name und Pfad
  '//           | der zu überprüfenden Datenbank
  '// -----------------------------------------------------
  '// Rückgabe  | Integer - Exklusiv = True, ansonsten
  '//           | False bzw. bei Fehler Err.Number
  '// -----------------------------------------------------
  '// Erstellt  | Manuela Kulpa
  '//           | EDV Innovation & Consulting - Dormagen
  '// =====================================================
 
  Dim iFile As Integer
 
  ' Wurde eine Datenbank angegeben
  If Len(psDBNamePath) = 0 Then
    ' wenn nein, ermittle den Namen und Pfad
    ' der aktuellen DB
    psDBNamePath = CurrentDb.Name
  End If
 
  iFile = FreeFile
 
  On Error Resume Next
 
  Open psDBNamePath For Binary Access _
       Read Write Shared As iFile
 
  Select Case Err
    Case 0
      A2XIsDBOpenExclusive = False
      ' Zugriff verweigert
    Case 70
      A2XIsDBOpenExclusive = True
    Case Else
      A2XIsDBOpenExclusive = Err.Number
  End Select
  Close iFile
 
  On Error GoTo 0
 
End Function