vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datenbanken   |   VB-Versionen: VB2005, VB200812.03.09
Access-Datenbank komprimieren II (.NET)

Eine weitere Funktion, mit der unter .NET eine Access-Datenbank komprimieren lässt.

Autor:   Helmut SuhrenBewertung:  Views:  12.470 
ohne HomepageSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.