Warsztat 3: Zip/Unzip bezpośrednio z poziomu Accessa.

Unzip.zip
Na podstawie źródła VB: http://home.modemss.brisnet.org.au/~mlevoi/dos.html
Przykład opracował na potrzeby Accessa: Krzysztof Pozorek
Baza w formacie MsAccess 2000
98kB, 10-04-2007

Zip.zip
Baza w formacie MsAccess 2000
127kB, 27-04-2007

 

Opis:

W jakim celu stosujemy kompresję jest dla wszystkich jasne. Zwłaszcza, gdy odczytujemy dane z internetu, należy się spodziewać, że mogą to być dane zarchiwizowane do formatu zip. Jak rozpakować takie archiwum? Czy to w ogóle jest możliwe z poziomu Accessa, bez konieczności używania w tym celu zewnętrznych programów?

Rozwiązanie:

Tak, można rozpakować (spakować) archiwum zip bezpośrednio z Accessa za pomocą kodu VBA. Przykłady jak to zrobić z wykorzystaniem biblioteki Unzip32.dll (Zip32.dll), przedstawiono w programach Unzip.mdb i Zip.mdb. Nasze przykłady accessowe wykorzystują tylko niektóre z dostępnych opcji. Pełny opis możliwości wymienionych bibliotek znajdziesz na stronach: Info-Zip, CodeGuru.

Mam wrażenie, że dość często pojawia się potrzeba obsługi w Accessie plików zarchiwizowanych, jednak szukamy innych metod, ze względu na to, ze format zip w Accessie nie jest obsługiwany. Niby można znaleźć opracowania dla VB, ale brakuje wprost takiego przykładu dla Accessa, który uczyni obsługę plików zip prostą i bardziej popularną. Może powyższe bazy spełnią tę rolę? :-) Zaadaptowanie przykładów do własnych potrzeb jest bardzo proste. Wystarczy zaimportować do swojego programu moduł VBUnzBas (VBZipBas) i skopiować plik Unzip32.dll (Zip32.dll) do katalogu systemowego lub tego samego katalogu, w którym jest nasza baza. Sposób wywołania funkcji podano w kodzie. Programy są obszernie komentowane, nie będzie problemów z rozpoznaniem poszczególnych opcji.

K.P.