Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 6/2008.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Zippen Sie Dateien per VBA und greifen Sie dabei auf Windows-Bordmittel zu.

Techniken

VBA

Voraussetzungen

Access 2000 oder höher

Beispieldateien

Zippen.mdb

Shortlink

642

Zippen ohne Zusatzkomponente

André Minhorst, Duisburg

Zippen unter VBA ging bislang nur mit Komponenten von Drittherstellern. Dabei liefert Windows (ab XP) doch alles, was man dazu braucht - zwar nicht den Komfort, den "richtige" Zip-Anwendungen wie WinZip und Co. bieten, aber immerhin brauchen Sie keine zusätzlichen Tools zu installieren. Wir zeigen Ihnen, wo die Zip-Funktionen von Windows stecken und wie Sie diese in Ihren Anwendungen einsetzen.

Wer mit Windows XP arbeitet, ist es gewohnt, Zip-Dateien auch ohne zusätzliches Zip-Tool zu öffnen. Der Windows Explorer zeigt sogar den Inhalt von Zip-Dateien an, wenn man diese in der Ordner-Ansicht markiert.

Die dort enthaltenen Funktionen lassen sich auch per VBA ansteuern. Dazu braucht man lediglich einen Verweis auf die Bibliothek Microsoft Shell Controls and Automation und die folgenden VBA-Routinen.

Der Ausgangspunkt für das Zippen sind üblicherweise eine oder mehrere Dateien und/oder Verzeichnisse. Diese sollen unter Beibehaltung der Struktur der enthaltenen Verzeichnisse in eine Zip-Datei geschrieben und wiederhergestellt werden können.

Die oben genannte Bibliothek liefert hierzu zunächst einmal wenig Erbauliches - zumindest, wenn man sich die enthaltenen Methoden und Eigenschaften im Objektkatalog ansieht. Dort kommt man erst weiter, wenn man sich vor Augen führt, was im Windows Explorer geschieht, wenn Sie Dateien aus einer Zip-Datei in ein normales Verzeichnis überführen und umgekehrt - Sie kopieren dort nämlich etwas. Und zum Thema Kopieren liefert die Bibliothek immerhin schon einmal die Methode CopyHere.

Und wenn Sie sich noch ein wenig von der Vorstellung lösen, dass ein Zip-File eine Datei sei und diese mehr als Ordner verstehen, haben Sie fast alles zusammen, was Sie brauchen: Die Methode CopyHere gehört nämlich zum Folder-Objekt.

Es gibt also ein Folder-Objekt, das Sie offensichtlich mithilfe der CopyHere-Methode mit irgendetwas füllen können. Woher beziehen wir das Folder-Objekt, das der Zip-Datei entsprechen sollte? Ein weiterer Blick in den Objektkatalog zeigt, dass die Methode Namespace des Shell-Objekts ein Objekt des Typs Folder zurückliefert - und zwar nach Angabe eines Parameters vDir. Dieser kann beispielsweise eine Zeichenkette mit dem Pfad zur Zip-Datei enthalten.

Zip-Datei erstellen

Allerdings haben wir ja eigentlich noch gar keine Zip-Datei. Und das Erstellen nimmt uns die Shell32-Bibliothek leider nicht ab. Sind wir hier schon am Ende unseres Weges? Mitnichten. Wir legen einfach ein Zip-Archiv mit einem herkömmlichen Zip-Programm an und löschen anschließend die darin archivierten Dateien. Übrig bleibt ein leeres Zip-Archiv, dessen Inhalt der Hex-Editor aus Abb. 1 liefert. Die Routine CreateZipFile erstellt einfach eine neue, leere Datei und fügt die soeben ermittelten Zeichen zur Datei hinzu, bevor sie diese schließt.

<pic001.tif

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

Automatischer Up- und Download per FTP

Access 2007: Anlagefelder

VBA: Datei, Verzeichnis und Explorer-Funktionen

Dateidialoge mit dem FileDialog-Objekt

Tipps und Tricks

Dateien verwalten mit Access

Globale Suche

TreeView-Konfigurator

Dateien in Tabellen speichern

Dateien einlesen und finden mit Access

VBA-Code mit Doxygen dokumentieren

Grundlagen der Quellcodeverwaltung

© 2003-2015 André Minhorst Alle Rechte vorbehalten.