Rubrik: Datenbanken | VB-Versionen: VB2005, VB2008 | 12.03.09 |
Access-Datenbank komprimieren II (.NET) Eine weitere Funktion, mit der unter .NET eine Access-Datenbank komprimieren lässt. | ||
Autor: Helmut Suhren | Bewertung: | Views: 12.470 |
ohne Homepage | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Mithilfe der "Microsoft Jet and Replication Objects Library (JRO)" kann eine MS Access Datenbank komprimiert werden. Die Funktion hat zwei Übergabe-Parameter, die die Eingangsdatei und die Ausgangsdatei spezifizieren. Beide Parameter können auch gleich sein.
Es ist ein Verweis auf die "Microsoft Jet and Replication Objects 2.6 Library" nötig!
''' <summary> ''' Diese Funktion komprimiert eine Access-Datenbank (*.mdb). ''' Quel- und Zieldatei können hierbei gleich sein. ''' </summary> ''' <param name="sInputName">Quelldatei</param> ''' <param name="sOutputName">Zieldatei</param> ''' <returns>Success</returns> ''' <remarks></remarks> Public Function CompactDatabase(ByVal sInputName As String, _ ByVal sOutputName As String) As Boolean ' temporärer Dateiname Dim sTempName As String = _ sOutputName & CStr(IIf(sInputName = sOutputName, "~", "")) ' ggf. temporäre Datei löschen, falls vorhanden If File.Exists(sTempName) Then File.Delete(sTempName) ' Eine Instanz von JRO erstellen ' (Hierzu muss ein Projektverweis auf ' "Microsoft Jet and Replication Objects 2.6 Library" ' gesetzt sein!) Dim JRO As JRO.JetEngine = New JRO.JetEngine() Try JRO.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ sInputName, "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ sTempName & ";Jet OLEDB:Engine Type=5") Catch ex As System.Runtime.InteropServices.COMException ' Fehler anzeigen und False zurückgeben MsgBox(ex.Message & vbCrLf & ex.StackTrace) Return False Finally ' JRO-Objekt wieder freigeben JRO = Nothing End Try ' Falls Quelle und Ziel gleich sein... If sInputName = sOutputName Then ' Quelle löschen File.Delete(sOutputName) ' Ziel umbenennen Rename(sTempName, sOutputName) End If ' Abschließend True zurückgeben Return True End Function