vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Datenbanken · DAO   |   VB-Versionen: VB4, VB5, VB629.04.01
Datenbanken komprimieren mit DAO

Zeigt, wie man eine Access-Datenbank unter VB komprimiert und fragt ggf. ein Paßwort ab.

Autor:   Jens BrunsenBewertung:     [ Jetzt bewerten ]Views:  23.133 
www.vb-power.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Access-Datenbanken haben eine "kleine" Eigenart an sich: Werden viele Datensätze hinzugefügt, oder auch viele Datensätze aus der Datenbank gelöscht, wächst die Dateigröße der Datenbank-Datei extrem an. Um die Datenbank-Größe wieder zu reduzieren stellt die Jet-Engine eine entsprechenden Befehl bereit: CompactDatabase
Wir zeigen Ihnen hier, wie Sie den Befehl richtig einsetzen. Sollte die Datenbank mit einem Passwort geschützt sein, wird ggf. noch das Paßwort abgefragt.

Noch ein Hinweis: Für das Komprimieren der Datenbank wird autom. eine neue Datenbank-Datei erstellt. Nach dem Komprimieren muss also die Originaldatei gelöscht und die neue Datei in die Originaldatei umbenannt werden. Diesen Vorgang übernimmt ebenfalls unsere Funktion dbCompact.

Public password As String
 
' Datenbank komprimieren
Public Function dbCompact(ByVal dbName As String) As Boolean
 
  Dim Quelle As String
 
  On Local Error GoTo dbCompact_Error
  dbCompact = False
 
  ' Prüfen, ob Datei existiert
  If Dir(dbName) <> "" Then
    Screen.MousePointer = 11
    Quelle = Left$(dbName, InStrRev(dbName, ".") - 1)
 
    ' Datenbank komprimieren (ohne Passwort)
    Err.Number = 0
    CompactDatabase dbName, Quelle & ".$$$"
 
    ' Fehler: Datenbank passwortgeschützt
    While Err.Number = 3031
      ' Dialog zur Eingabe des Passworts aufrufen
      Screen.MousePointer = 0
      ' Das Passwort wird in der öffentlichen Variablen
      ' password gespeichert
      frm_password.Show 1
      Screen.MousePointer = 11
 
      ' Neuer Versuch mit Passwort-Angabe
      Err.Number = 0
      CompactDatabase dbName, Quelle & ".$$$", , , _
        ";pwd=" & password
    Wend
    On Local Error GoTo 0
 
    ' Originaldatei löschen
    Kill dbName
 
    ' Umbenennen der neuen Datei in die Originaldatei
    Name Quelle & ".$$$" As dbName
 
    Screen.MousePointer = 0
    MsgBox "Komprimierung erfolgreich abgeschlossen!", 64, _
      "Information"
    dbCompact = True
  Else
    MsgBox "Datenbank " & dbName & " nicht gefunden!", _
      vbCritical, "Fehler"
  End If
  Exit Function
 
dbCompact_Error:
  If Err.Number = 3031 Then Resume Next
  If Err.Number <> 32755 Then
    MsgBox Err.Description & " (" & Err.Number & ")", _
      vbCritical, "Fehler"
  End If
  Screen.MousePointer = 0
End Function

Alles, was Sie jetzt noch selber machen müssen ist das Bereitstellen eines Formulars für die Passwort-Eingabe. Beim Schließen dieses Formulars teilen Sie der aufrufenden Form das Passwort dann mit:

frmMain.Password = txtPassword.Text

Dieser Tipp wurde bereits 23.133 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel