{"id":55000496,"date":"2007-10-01T00:00:00","date_gmt":"2021-02-11T21:18:01","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=496"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Per_VBA_komprimieren_mit_SawZipNG","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/","title":{"rendered":"Per VBA komprimieren mit SawZipNG"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/83ed1fbd709343139f7a2afd4b368363\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Eine Schnittstelle f&uuml;r den Einsatz mit VBA liefern einige Produkte wie etwa WinZip direkt mit. Leider sind die meisten kostenpflichtig. Access im Unternehmen stellt eine frei verf&uuml;gbare DLL vor, mit der Sie von Ihrer Datenbank aus die von den verbreiteten Komprimierungstools her bekannten Funktionen nachbilden k&ouml;nnen.<\/b><\/p>\n<\/div>\n<div class=\"story\">\n<p><b>SawZipNG <\/b>hat es merkw&uuml;rdigerweise nie zu au&szlig;ergew&ouml;hnlichem Ruhm gebracht: Die Bibliothek war eine Zeit lang zum Download verf&uuml;gbar, danach ist sie aber aus dem Blickfeld des Internets verschwunden. Zum Gl&uuml;ck hat Access im Unternehmen eine Kopie dieser &auml;u&szlig;erst n&uuml;tzlichen DLL aufgetrieben; Sie finden diese auf der Heft-CD oder unter <b>www.access-im-unternehmen.de <\/b>zum Download.<\/p>\n<p>Nach der Installation des Setups steht die passende Bibliothek bereit und wartet auf die Bereitstellung in der Zieldatenbank per passendem Verweis (siehe Bild 1). Bei der Weitergabe brauchen Sie nicht das komplette Setup mitzuliefern, die Datei <b>SawZipNG.dll <\/b>reicht aus. Allerdings muss diese dann noch per <b>RegSvr32.exe <\/b>registriert werden. <\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/SawZipNG-web-images\/pic001_opt.jpeg\" alt=\"pic001.tif\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 1: Um die Zip-DLL in eine Anwendung einzubinden, muss man einen passenden Verweis anlegen.<\/span><\/b><\/p>\n<\/p><\/div>\n<p>Der Einsatz von Late Binding w&uuml;rde einen Verweis &uuml;berfl&uuml;ssig machen; wie dies aussieht, k&ouml;nnen Sie der Beispieldatenbank entnehmen.<\/p>\n<p><b>Archiv erstellen<\/b><\/p>\n<p>Das Hauptobjekt der DLL ist das <b>Archiv<\/b>-Objekt. Es steht sowohl beim Erzeugen und Hinzuf&uuml;gen von Dateien als auch beim Entpacken eines Zip-Archivs im Mittelpunkt.<\/p>\n<p>Bevor Sie das Tool einsetzen, m&uuml;ssen Sie sich &uuml;berlegen, ob Sie gegebenenfalls auf die Ereignisse des Archive-Objekts reagieren m&ouml;chten. Diese werden unter anderem ausgel&ouml;st, wenn eine Datei zum Archiv hinzugef&uuml;gt, eine Datei gel&ouml;scht oder das Archiv entpackt wird. In dem Fall m&uuml;ssen Sie die Objektvariable mit dem Schl&uuml;sselwort <b>WithEvents <\/b>deklarieren, was nur in Formular-, Berichts- und Klassenmodulen, aber nicht in Standardmodulen m&ouml;glich ist. Hier ist dann auch unbedingt der Verweis n&ouml;tig, mit Late Binding gibt es keine unmittelbare M&ouml;glichkeit zum Einsatz von <b>WithEvents <\/b>und der passenden Ereignisse.<\/p>\n<p>F&uuml;r den Anfang lassen wir diese Option allerdings zun&auml;chst au&szlig;en vor und konzentrieren uns auf die eigentlichen Funktionen.<\/p>\n<p>Die Zeilen zum Erstellen und Erzeugen eines Archivs sehen beispielsweise wie folgt aus:<\/p>\n<pre>Dim objArchiv As SAWZipNG.Archive\r\nSet objArchiv = New SAWZipNG.Archive<\/pre>\n<p>Das Archiv existiert bis dato nur im Speicher. Sie k&ouml;nnen nun Dateien hinzuf&uuml;gen und das Archiv auf die Festplatte bannen. Das funktioniert etwa so:<\/p>\n<pre>Dim objArchiv As SAWZipNG.Archive\r\nSet objArchiv = New SAWZipNG.Archive\r\nWith objArchiv\r\n   .Create \"c:\\SawZip.zip\"\r\n   .AddFile \"c:\\test.txt\"\r\nEnd With<\/pre>\n<p>Die <b>Create<\/b>-Methode legt zun&auml;chst die Zip-Datei an, die <b>AddFile<\/b>-Methode f&uuml;gt die angegebene Datei hinzu &#8211; fertig, die erste Zip-Datei ist erstellt!<\/p>\n<p>Beachten Sie, dass Access abst&uuml;rzt, wenn Sie der <b>Create<\/b>-Methode eine leere Zeichenkette &uuml;bergeben. Wenn der Benutzer den Dateinamen eingibt oder ausw&auml;hlt, pr&uuml;fen Sie diesen zuvor auf seinen Inhalt.<\/p>\n<p>Nat&uuml;rlich gibt es noch einige Einstellungen, die Sie in den folgenden Abschnitten kennen lernen.<\/p>\n<p><b>Beispieldaten<\/b><\/p>\n<p>Zum Testen der Zip-Bibliothek brauchen Sie ein paar Verzeichnisse und Dateien, an denen Sie nichts kaputt machen k&ouml;nnen. Mit der folgenden Routine legen Sie die passenden Elemente im Verzeichnis der aktuellen Datenbank an (siehe Bild 2):<\/p>\n<div class=\"abbildung\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/SawZipNG-web-images\/pic002_opt.jpeg\" alt=\"pic002.tif\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 2: Diese per VBA-Code schnell angelegte Verzeichnis- und Dateistruktur dient als Versuchsfeld f&uuml;r die Zip-Bibliothek.<\/span><\/b><\/p>\n<\/p><\/div>\n<pre>Public Sub Beispieldateien()\r\n   Dim i As Integer\r\n   Dim j As Integer\r\n   Dim strPfad As String\r\n   On Error Resume Next\r\n   strPfad = CurrentProject.Path\r\n   MkDir strPfad &amp; \"\\Zip\"\r\n   On Error GoTo 0\r\n   For i = 1 To 10\r\n     Open strPfad &amp; \"\\Zip\\Test\" _<br \/> &amp; Format(i, \"00\") _<br \/> &amp; \".txt\" For Output As #1\r\n     Print #1, \"Test\"\r\n     Close #1\r\n     On Error Resume Next\r\n     MkDir strPfad &amp; \"\\Zip\\Zap\" _<br \/> &amp; Format(i, \"00\")\r\n     For j = 1 To 10\r\n       Open strPfad &amp; \"\\Zip\\Zap\" _<br \/> &amp; Format(i, \"00\") &amp; \"\\Test\" _<br \/> &amp; Format(j, \"00\") &amp; \".txt\" _<br \/> For Output As #2\r\n       Write #2, \"Test\"\r\n       Close #2\r\n     Next j\r\n     On Error GoTo 0\r\n   Next i\r\nEnd Sub<\/pre>\n<p>Zu Beispielzwecken k&ouml;nnte man nun ein Formular entwickeln, dass etwa die Funktionen von WinZip oder &auml;hnlichen Produkten nachbildet. Das w&auml;re anschaulich, macht aber wenig Sinn. Viel interessanter ist es, die Zip-Funktionen beispielsweise zum Zusammenpacken zu sichernder Daten zu verwenden &#8211; ein netter Anwendungszweck w&auml;re eine Datenbank, die Berichte im Snapshot- oder PDF-Format speichert, diese packt und per Mail verschickt. Im Folgenden lernen Sie daher die nackten VBA-Anweisungen zur Steuerung der Zip-Bibliothek kennen.<\/p>\n<p><!--30percent--><\/p>\n<p><b>Datei verschl&uuml;sselt packen<\/b><\/p>\n<p>Um sicherzustellen, dass nur der Empf&auml;nger einer Datei Zugriff auf diese hat, k&ouml;nnen Sie diese nicht nur packen, sondern auch mit einem Passwort verschl&uuml;sseln.<\/p>\n<pre>Public Sub DateiVerschluesseln()\r\n   '....\r\n   With objArchiv\r\n     .Create CurrentProject.Path _<br \/> &amp; \"\\VerschluesseltesArchiv.zip\"\r\n     .Password = \"test\"\r\n     .AddFile CurrentProject.Path _<br \/> &amp; \"\\zip\\test01.txt\"\r\n   End With\r\nEnd Sub<\/pre>\n<p>Diese Routine erzeugt ein Zip-File mit einer verschl&uuml;sselten Datei, die WinZip wie in Bild 3 darstellt. Wichtig ist hier die Reihenfolge: Nur diejenigen Dateien, die nach der Angabe des Schl&uuml;sselwortes mit der <b>Password<\/b>-Eigenschaft hinzugef&uuml;gt wurden, sind auch verschl&uuml;sselt.<\/p>\n<div class=\"image\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/SawZipNG-web-images\/pic003_opt.jpeg\" alt=\"pic003.tif\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 3: Verschl&uuml;sselt gezippte Dateien lassen sich nur mit dem entsprechenden Passwort wieder entschl&uuml;sseln.<\/span><\/b><\/p>\n<\/p><\/div>\n<p><b>Verzeichnisse packen<\/b><\/p>\n<p>Wenn Sie die <b>AddFile<\/b>-Anweisung durch <b>AddFolder <\/b>ersetzen und ein Verzeichnis statt einer Datei angeben, k&ouml;nnen Sie ein komplettes Verzeichnis komprimieren. Ob Sie dabei nur das angegebene Verzeichnis und die darin enthaltenen Dateien oder auch die Unterverzeichnisse mit komplettem Inhalt zippen, h&auml;ngt von der Einstellung f&uuml;r den Parameter <b>includeSubDirs <\/b>ab. Die folgende Routine demonstriert das Komprimieren des kompletten Astes ab dem Verzeichnis <b>Zip<\/b>:<\/p>\n<pre>Public Sub VerzeichnisMitUnterverzeichnissen()\r\n   '...\r\n   With objArchiv\r\n     .Create CurrentProject.Path &amp; \"\\File.zip\"\r\n     .AddFolder CurrentProject.Path _<br \/> &amp; \"\\zip\", includeSubDirs:=True\r\n   End With\r\nEnd Sub<\/pre>\n<p class=\"zwischen-berschriftnachquellcode\">Der rechte Pfad<\/p>\n<p>F&uuml;r den Empf&auml;nger eines Zip-Archivs ist es wichtig, wohin die enthaltenen Dateien entpackt werden. Das Ziel h&auml;ngt entscheidend von dem in WinZip unter <b>Pfad <\/b>angezeigten Verzeichnis ab. &uuml;blicherweise liefert man bei einzelnen Dateien gar keine Verzeichnisstruktur mit und beim Archivieren von kompletten Verzeichnissen den Teil des Verzeichnisbaums, der das zu archivierende Verzeichnis mit einschlie&szlig;t.<\/p>\n<p>Standardm&auml;&szlig;ig fasst das Archivieren die komplette Verzeichnishierarchie mit Ausnahme des Laufwerkbuchstabens ein. Der Nachteil dabei ist, dass der Empf&auml;nger in dem Verzeichnis, in dem er die Zip-Datei entpackt, den kompletten Verzeichnisbaum abbildet, in dem sich auch die Originaldateien befanden. Wenn das Verzeichnis <b>Zip <\/b>also in <b>c:\\Ordner1\\Ordner2\\Ordner3 <\/b>gespeichert war und mit Verzeichnisinformationen gezippt wurde, und der Benutzer es unter <b>c:\\Test\\ <\/b>entpackt, erh&auml;lt er die Verzeichnisstruktur <b>c:\\Test\\Ordner1\\Ordner2\\Ordner3\\Zip<\/b>, obwohl er eigentlich nur <b>c:\\Test\\Zip <\/b>erhalten wollte.<\/p>\n<p>Wenn Sie den Parameter <b>FullPath <\/b>auf <b>False <\/b>einstellen, speichert das Archiv gar keine Pfad-Informationen:<\/p>\n<pre>With objArchiv\r\n   .Create CurrentProject.Path _<br \/> &amp; \"\\VerzeichnisOhneRoot.zip\"\r\n   .AddFolder CurrentProject.Path _<br \/> &amp; \"\\zip\", FullPath:=False\r\nEnd With<\/pre>\n<p>Beim Entpacken gelangen dadurch alle Dateien in dasselbe Verzeichnis, wodurch die komplette Struktur verloren geht &#8211; auch das ist keine Optimall&ouml;sung. Der beste Weg beim Zippen von Verzeichnissen ist der folgende: Es wird genau das Verzeichnis als Root-Verzeichnis in das Archiv geschrieben, das auch f&uuml;r die <b>AddFolder<\/b>-Methode angegeben wurde. Wenn Sie also einen Ordner namens <b>Zip <\/b>mit drei darin enthaltenen Dateien packen, soll genau dieser Ordner mit den drei Dateien an der Stelle entpackt werden, die der Benutzer angibt. Im Detail setzen Sie bei der <b>AddFolder<\/b>-Methode den Parameter <b>FullPath <\/b>auf den Wert <b>False<\/b>, geben aber in der Zeile vorher mit der <b>RootPath<\/b>-Eigenschaft an, welche Elemente vom urspr&uuml;nglichen Pfad entnommen werden sollen:<\/p>\n<pre>Public Sub VerzeichnisOhneRoot()\r\n   '...\r\n   With objArchiv\r\n     .Create CurrentProject.Path _<br \/> &amp; \"\\VerzeichnisOhneRootMitPfad.zip\"\r\n     .RootPath = CurrentProject.Path\r\n     .AddFolder CurrentProject.Path _<br \/> &amp; \"\\zip\\\", includeSubDirs:=True, _<br \/> FullPath:=False\r\n   End With\r\nEnd Sub<\/pre>\n<p>Selbst wenn sich das betroffene Verzeichnis unter <b>c:\\Unterordner1\\Unterordner2\\zip <\/b>befindet, enth&auml;lt das Zip-File nur noch das Verzeichnis <b>zip <\/b>als Hauptordner (siehe Bild 3).<\/p>\n<div class=\"abbildung\">\n        <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2007_05\/SawZipNG-web-images\/pic004_opt.jpeg\" alt=\"pic004.tif\" \/>\n    <\/div>\n<div class=\"story\">\n<p><b><span style=\"color:darkgrey\">Bild 3: Mit der Eigenschaft RootPath kann man Teile des Zielverzeichnisses abschneiden, damit beim Entpacken nicht die kompletten &uuml;bergeordneten Verzeichnisse des Originals nachgebildet werden.<\/span><\/b><\/p>\n<\/p><\/div>\n<p><b>Kompressionsrate<\/b><\/p>\n<p>F&uuml;r alle Archivierungsvorg&auml;nge gilt: Sie k&ouml;nnen die Kompressionsrate mit dem Parameter <b>level <\/b>f&uuml;r jedes mit einem einzelnen <b>Add&#8230;<\/b>-Befehl hinzugef&uuml;gte Element (egal, ob Datei oder Ordner) einstellen. Die Werte reichen von <b>0 <\/b>(keine Kompression) bis <b>9 <\/b>(maximale Kompression).<\/p>\n<p><b>Datei unter anderem Namen archivieren<\/b><\/p>\n<p>Mit der Methode <b>AddFileAs <\/b>k&ouml;nnen Sie vorhandene Dateien unter einem anderen Namen im Zip-File archivieren, ohne dass Sie die Datei zuvor umbenennen m&uuml;ssen. Geben Sie einfach den neuen Namen zus&auml;tzlich zum Originalnamen an:<\/p>\n<pre>Public Sub DateiUnterAnderemNamen()\r\n   '...\r\n   With objArchiv\r\n     .Create CurrentProject.Path &amp; \"\\DateiUnterAnderemNamen.zip\"\r\n     .AddFileAs CurrentProject.Path &amp; _<br \/> \"\\zip\\test01.txt\", \"NeuerName.txt\"\r\n   End With\r\nEnd Sub<\/pre>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Entpacken<\/p>\n<p>Die <b>SawZipNG<\/b>-Bibliothek liefert auch Methoden zum automatisierten Entpacken von Zip-Dateien. Dies ist unter anderem sinnvoll, wenn Sie per Mail oder FTP zugestellte Zip-Dateien entpacken und die enthaltenen Daten in irgendeiner Weise weiterverarbeiten m&ouml;chten (zum Beispiel k&ouml;nnten Anwendungen beim Kunden Fehlermeldungen in eine Textdatei schreiben, diese in einem Archiv speichern und zum Entwickler schicken). &uuml;blicherweise extrahiert man direkt alle Dateien eines Archivs. Dies kann wie in folgendem Beispiel aussehen:<\/p>\n<pre>Public Sub AllesEntpacken()\r\n   Dim objArchiv As SAWZipNG.Archive\r\n   Dim i As Integer\r\n   Set objArchiv = New SAWZipNG.Archive\r\n   objArchiv.Open CurrentProject.Path &amp; _<br \/> \"\\VerzeichnisseMitRoot.zip\"\r\n   With objArchiv\r\n     For i = 0 To objArchiv.FileCount - 1\r\n       .Extract i, CurrentProject.Path _<br \/> &amp; \"\\Extrahiert\"\r\n     Next i\r\n   End With\r\nEnd Sub<\/pre>\n<p>Die Routine erzeugt zun&auml;chst auf die gleiche Weise wie auch beim Packen ein <b>Archive<\/b>-Objekt. Dem weist sie aber mit der <b>Open<\/b>-Methode ein existierendes Zip-File zu. Anhand der <b>FileCount<\/b>-Eigenschaft ermittelt sie die Anzahl der enthaltenen Dokumente und durchl&auml;uft dann eine Schleife, in der jedes einzelne Dokument unterhalb des angegebenen Verzeichnisses extrahiert wird. Dabei ist zu beachten, dass der Index bei <b>0<\/b> beginnt.<\/p>\n<p><b>Verschl&uuml;sseltes Archiv entpacken<\/b><\/p>\n<p>Beim Entpacken verschl&uuml;sselter Archive ist die Angabe des Passwortes mit derselben Eigenschaft wie beim Verschl&uuml;sseln selbst erforderlich. Wird vor der <b>Extract<\/b>-Methode kein oder ein falsches Passwort angegeben, l&ouml;st dies einen Fehler aus:<\/p>\n<pre>Public Sub VerschluesseltesArchivEntpacken()\r\n   '...\r\n   With objArchiv\r\n     For i = 0 To objArchiv.FileCount - 1\r\n       .Password = \"test\"\r\n       .Extract i, CurrentProject.Path _<br \/> &amp; \"\\Extrahiert\"\r\n     Next i\r\n   End With\r\nEnd Sub<\/pre>\n<p class=\"zwischen-berschriftnachquellcode\">Bestimmte Datei entpacken<\/p>\n<p>Gegebenenfalls m&ouml;chten Sie auch einmal nur eine einzige Datei aus einem Archiv entpacken. Wenn Sie sich nur auf den Dateinamen beziehen m&ouml;chten, verwenden Sie etwa die folgende Routine. Zu beachten sind die einzelnen Parameter der <b>FindFile<\/b>-Funktion. Diese Funktion liefert den Index der gefundenen Datei zur&uuml;ck, sonst den Wert <b>-1<\/b>.<\/p>\n<pre>Public Sub EineDateiEntpacken()\r\n   '...\r\n   With objArchiv\r\n     i = .FindFile(\"Test01.txt\", _<br \/> caseSensitive:=FF_NON_SENSITIVE, _<br \/> filenameOnly:=True)\r\n     .Extract i, CurrentProject.Path, False\r\n   End With\r\nEnd Sub<\/pre>\n<p class=\"zwischen-berschriftnachquellcode\">Alternative Dateiendung<\/p>\n<p>Da Zip-Dateien hier und da im Spam-Filter h&auml;ngen bleiben, ben&ouml;tigen Sie gegebenenfalls eine alternative Dateiendung. Das ist kein Problem: Legen Sie das Archiv einfach unter der gew&uuml;nschten Endung an; auch das Extrahieren mit <b>SawZipNG <\/b>bereitet mit alternativen Dateiendungen keine Probleme.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Diese <b>SawZipNG<\/b>-Bibliothek liefert alles, was das Archivierer-Herz h&ouml;her schlagen l&auml;sst. Neben den hier vorgestellten M&ouml;glichkeiten gibt es noch einige weitere Funktionen und Eigenschaften. F&uuml;r weitere Informationen bietet sich das Studium der HTML-Datei <b>archive.html <\/b>aus dem auf der Heft-CD befindlichen Paket an.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>SawZipNG.mdb<\/p>\n<p>SawZipNG.rar<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/3398B187-A5DE-4017-9294-04869090A0E4\/aiu_496.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine Schnittstelle f&uuml;r den Einsatz mit VBA liefern einige Produkte wie etwa WinZip direkt mit. Leider sind die meisten kostenpflichtig. Access im Unternehmen stellt eine frei verf&uuml;gbare DLL vor, mit der Sie von Ihrer Datenbank aus die von den verbreiteten Komprimierungstools her bekannten Funktionen nachbilden k&ouml;nnen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662007,66052007,44000026,44000025],"tags":[],"class_list":["post-55000496","post","type-post","status-publish","format-standard","hentry","category-662007","category-66052007","category-Interaktiv","category-VBA_und_Programmiertechniken"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Per VBA komprimieren mit SawZipNG - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Per VBA komprimieren mit SawZipNG\" \/>\n<meta property=\"og:description\" content=\"Eine Schnittstelle f&uuml;r den Einsatz mit VBA liefern einige Produkte wie etwa WinZip direkt mit. Leider sind die meisten kostenpflichtig. Access im Unternehmen stellt eine frei verf&uuml;gbare DLL vor, mit der Sie von Ihrer Datenbank aus die von den verbreiteten Komprimierungstools her bekannten Funktionen nachbilden k&ouml;nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-11T21:18:01+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg08.met.vgwort.de\/na\/83ed1fbd709343139f7a2afd4b368363\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Per VBA komprimieren mit SawZipNG\",\"datePublished\":\"2021-02-11T21:18:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/\"},\"wordCount\":1571,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/83ed1fbd709343139f7a2afd4b368363\",\"articleSection\":[\"2007\",\"5\\\/2007\",\"Interaktiv\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/\",\"name\":\"Per VBA komprimieren mit SawZipNG - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/83ed1fbd709343139f7a2afd4b368363\",\"datePublished\":\"2021-02-11T21:18:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/83ed1fbd709343139f7a2afd4b368363\",\"contentUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/83ed1fbd709343139f7a2afd4b368363\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Per_VBA_komprimieren_mit_SawZipNG\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Per VBA komprimieren mit SawZipNG\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Per VBA komprimieren mit SawZipNG - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/","og_locale":"de_DE","og_type":"article","og_title":"Per VBA komprimieren mit SawZipNG","og_description":"Eine Schnittstelle f&uuml;r den Einsatz mit VBA liefern einige Produkte wie etwa WinZip direkt mit. Leider sind die meisten kostenpflichtig. Access im Unternehmen stellt eine frei verf&uuml;gbare DLL vor, mit der Sie von Ihrer Datenbank aus die von den verbreiteten Komprimierungstools her bekannten Funktionen nachbilden k&ouml;nnen.","og_url":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-11T21:18:01+00:00","og_image":[{"url":"http:\/\/vg08.met.vgwort.de\/na\/83ed1fbd709343139f7a2afd4b368363","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Per VBA komprimieren mit SawZipNG","datePublished":"2021-02-11T21:18:01+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/"},"wordCount":1571,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/83ed1fbd709343139f7a2afd4b368363","articleSection":["2007","5\/2007","Interaktiv","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/","url":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/","name":"Per VBA komprimieren mit SawZipNG - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/83ed1fbd709343139f7a2afd4b368363","datePublished":"2021-02-11T21:18:01+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/#primaryimage","url":"http:\/\/vg08.met.vgwort.de\/na\/83ed1fbd709343139f7a2afd4b368363","contentUrl":"http:\/\/vg08.met.vgwort.de\/na\/83ed1fbd709343139f7a2afd4b368363"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Per_VBA_komprimieren_mit_SawZipNG\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Per VBA komprimieren mit SawZipNG"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000496"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000496\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}