qwertzuiopue
Goto Top

Laufzeitfehler 3734 Datenbank komprimieren funktioniert nicht

Moin zusammen,
ich bekomme leider immer die Fehlermeldung "Die Datenbank wurde vom Benutzer 'bbbbbbb' auf Computer 'blabla' in einen
Zustand versetzt, in dem sie nicht geöffnet oder gesperrt werden kann." Laufzeitfehler 3734
Eigentlich wird die Datenbank nur erstellt und danach komprimiert. Das komprimieren wirft aber direkt den Fehler 3734.
Hat da jmd eine Idee???


Hier der Code:
 Sub DB_erstellen(Pfad As String, DBname As String)
 Dim db As DAO.Database
 Rem eine leere Access-Datenbank anlegen

 On Error GoTo Fehler
 
 Datei = Pfad & DBname
 Rem prüfen ob Datei schon vorhanden ist
 If Dir(Datei) <> "" Then  
    MsgBox "Datei ist schon vorhanden!", , _  
           "keine Änderung durchgeführt"  
 Else
   Set db = CreateDatabase(Datei, dbLangGeneral)
    Set db = Nothing
 End If

 Exit Sub

Fehler:
 Set db = Nothing
 MsgBox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _  
        & "Beschreibung: " & Err.Description _  
        , vbCritical, "Fehler aufgetreten"  
 End Sub

Und anschließend wird folgendes aufgerufen

Public Function fctCompactOtherDB(strPath As String)
  'Komprimiert die angegebene MDB  
  'Aufruf: fctCompactOtherDB "Pfad_und_Name_der_zu_komprimierenden.mdb"  

  On Error GoTo myError
    
  DoCmd.Hourglass True
    
  Dim strFile As String
  Dim varDummyPath As Variant
  Dim varDummyFile As Variant
    
  strFile = Dir(strPath)
  varDummyPath = Left$(strPath, Len(strPath) - Len(strFile))
  varDummyFile = varDummyPath & "Dummy.mdb"  
  DBEngine.CompactDatabase strPath, varDummyFile
  Kill strPath
  Name varDummyFile As strPath
    
myExit:
    DoCmd.Hourglass False
    Exit Function
    
myError:
    Select Case Err.Number
      Case 3005, 3024, 53, 3044, 76
        MsgBox "Die Datenbank konnte nicht gefunden werden.", vbOKOnly  
      Case 3196
        MsgBox "Die Datenbank wird zur Zeit verwendet.", vbOKOnly  
      Case Else
        MsgBox "Ausnahme Nr. " & Err.Number & ". Das heißt: " & Err.Description  
    End Select
    Resume myExit

End Function

Gruß JO

Content-Key: 250017

Url: https://administrator.de/contentid/250017

Ausgedruckt am: 19.03.2024 um 05:03 Uhr

Mitglied: colinardo
Lösung colinardo 24.09.2014 aktualisiert um 13:19:38 Uhr
Goto Top
Zitat von @Qwertzuiopue:

Moin zusammen,
ich bekomme leider immer die Fehlermeldung "Die Datenbank wurde vom Benutzer 'bbbbbbb' auf Computer
'blabla' in einen
Zustand versetzt, in dem sie nicht geöffnet oder gesperrt werden kann." Laufzeitfehler 3734
Eigentlich wird die Datenbank nur erstellt und danach komprimiert. Das komprimieren wirft aber direkt den Fehler 3734.
Hat da jmd eine Idee???
Ich würde das neue Datenbankobjekt mal richtig schließen mit db.Close, vermutlich hat deswegen deine Anwendung noch eine Lock-Handle auf die neue DB offen und deswegen schlägt die Komprimierung fehl.
http://msdn.microsoft.com/de-de/library/office/ff822418%28v=office.15%2 ...

Grüße Uwe

p.s. Bitte nutze Code-Tags für deinen Quellcode: <code> Quellcode </code>. Merci.
Mitglied: Pjordorf
Lösung Pjordorf 24.09.2014 aktualisiert um 13:17:14 Uhr
Goto Top
Hallo,

Zitat von @Qwertzuiopue:
ich bekomme leider immer die Fehlermeldung "Die Datenbank wurde vom Benutzer 'bbbbbbb' auf Computer 'blabla' in einen Zustand versetzt, in dem sie nicht geöffnet oder gesperrt werden kann." Laufzeitfehler 3734
Ohne jetzt zu wissen um welches Access, welches OS, wie verschiedene User und rechner dort gleichzeitig rumfummeln kann ich dir nur dies bieten:
http://support.microsoft.com/kb/274211/de
http://www.pcreview.co.uk/forums/error-3734-database-has-been-placed-st ...
http://www.pcreview.co.uk/forums/error-3734-database-has-been-placed-st ...
http://www.accessforums.net/programming/run-time-error-3734-database-lo ...

Wie ich das fand? Nimm "error 3734 access database" für deine Recherche...

Gruß,
Peter
Mitglied: Qwertzuiopue
Qwertzuiopue 24.09.2014 um 13:18:49 Uhr
Goto Top
Danke Uwe
Habe ein db.close eingefügt und alle Daten mal geschlossen, sodass auch alle Prozesse mal geschlossen wurden.
geht jetzt