title image


Smiley VB.NET: Probleme mit Access DB komprimieren sofern diese offen ist
Hallo



ich habe ein VB.NET Programm welches einmal die Woche eine Access Datenbank komprimiert.



Dies gelingt so:



Dim BackupPath, TempPath As String



' Prüfe, ob IdleTime noch nicht abgelaufen ist

BackupPath = MDBPath & ".bak"

If FSO.FileExists(BackupPath) Then

If CSng(Now.ToOADate - FileDateTime(BackupPath).ToOADate) < IdleTime Then

DBCompact = True

Exit Function

Else

' Wenn IdleTime abgelaufen, lösche altes Backup-File

Kill(BackupPath)

End If

End If



' Benenne .MDB in .BAK um

On Error Resume Next

Rename(MDBPath, BackupPath)

If Err.Number = 0 Then



' Datenbank komprimieren (.TMP aus .BAK erstellen)

TempPath = MDBPath & ".tmp"

If Password = "" Then

DAO.CompactDatabase(BackupPath, TempPath)

Else

DAO.CompactDatabase(BackupPath, TempPath, , , ";PWD=" & Password)

End If



' Ist die Komprimierung durchgelaufen?

If Err.Number = 0 Then

' Komprimierte DB zurückstellen (.TMP => .MDB)

On Error GoTo 0

Rename(TempPath, MDBPath)

DBCompact = True

Else

'Ursprüngliche DB zurückstellen

On Error GoTo 0

Rename(BackupPath, MDBPath)

End If

Else

' Wenn Datei bereits offen, wird Error-Number 5 zurückgegeben

If Err.Number 5 Then

MsgBox("Error-Number: " & Err.Number & vbCrLf & _

"Error-Text : " & Err.Description)

End If

End If





Wenn nun die Datenbank offen ist, kann die DB nicht komprimiert werden.

Gibt es eine Andere Methode dies zu machen?

Wie kann ich, sofern offen, die Access DB schliessen?



Wäre um Hilfe sehr dankbar.



Gruss

VL
Visual Lancelot aka [CH]-SubZero


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: