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

https://www.vbarchiv.net
Rubrik: Datenbanken   |   VB-Versionen: VB.NET11.02.08
Access-Datenbank komprimieren (.NET)

Mit dieser Funktion lässt sich unter .NET eine Access-Datenbank komprimieren.

Autor:   Heinz PrelleBewertung:  Views:  17.690 
www.visual-basic5.deSystem:  WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Mit nachfolgender Funktion lässt sich eine Access-Datenbank (Access 2000 oder höher) unter Verwendung der COM-Schnittstelle "JRO.Engine" komprimieren. Über den optionalen Parameter kann zudem festgelegt werden, ob die Original-Datenbank nach erfolgreichem Komprimierungsvorgang gelöscht werden soll.

' benötigte Imports
Imports System.Activator
Imports System.Type
Imports System.Runtime.InteropServices
Imports System.IO
Imports System.Reflection
Private Function CompressAccessDataBase( _
  ByVal SourceFilename As String, _
  ByVal NewFilename As String, _
  Optional ByVal bDeleteSource As Boolean = False) As Boolean
 
  Try
    ' Connection-String festlegen
    Dim Connection As String = _
      "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      SourceFilename
 
    ' Verweis auf die COM-Schnittstelle "JRO.Engine"
    Dim jro As Object = CreateInstance( _
      GetTypeFromProgID("JRO.JetEngine"))
 
    ' Parameter festlegen
    Dim Params As Object() = _
      New Object() {Connection, _
      "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
      SourceFilename & _
      ".tmp ;Jet OLEDB:Engine Type=5"}
 
    ' Komprimiervorgang starten
    jro.GetType().InvokeMember("CompactDatabase", _
      BindingFlags.InvokeMethod, Nothing, jro, Params)
 
    ' ggf. Quelldatei löschen
    If bDeleteSource Then File.Delete(SourceFilename)
 
    ' temporäre (komprimierte) Datenbank an den Zielort verschieben
    File.Move(SourceFilename & ".tmp", NewFilename)
 
    ' COM-Objekt wieder freigeben
    Marshal.ReleaseComObject(jro)
    jro = Nothing
 
    Return (File.Exists(NewFilename))
 
  Catch ex As Exception
    MessageBox.Show(ex.Message.ToString(), "Info")
    Return False
  End Try
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.