Mde2Mdb2k.zip Add - in
Autor: Krzysztof Naworyta
Baza w formacie MsAccess 2000 (program należy zarejestrować jako dodatek Add-In)
Baza nie jest darmowa, korzystanie z niej jest dozwolone na zasadach opisanych w programie.
(Mde2Mdb2k Add-in is postcardware !)
96kB, 28-01-2003
Mde2Mdb97.zip Add - in
Autor: Krzysztof Naworyta
Baza w formacie MsAccess 97 (program należy zarejestrować jako dodatek Add-In)
Baza nie jest darmowa, korzystanie z niej jest dozwolone na zasadach opisanych w programie.
(Mde2Mdb97 Add-in is postcardware !)
87kB, 28-01-2003
Mde2Mdb - tutorial
Autor: Roberto Reis
Roberto w podzięce za wyjaśnienie działania programu przysłał własnoręcznie zrobiony
'tutorial'.
/cite/ I am sending you a brief tutorial, to show people like me how easy is to use your program./cite/
(A tu ten sam tutorial w wersji do sciągnięcia)
MDE Extractor v.1.1 Add - in
Autor: Siergiej Gawriłow http://accesstools.narod.ru/
Baza w formacie MsAccess 2000 (Obsługuje bazy Acc'97, Acc'2000 i Acc'2002)
99kB, 10-02-2003
Stanowi znaczne rozwinięcie głównego pomysłu z Mde2Mdb2k.zip.
Siergiej zgodził się udostępnić swoją wersję programu na naszej witrynie,
Program przekompilowany na polskiej wersji Access'a, do pobrania w tym miejscu
(wkrótce wzbogacony polskim komentarzem)
Sposibo, Serge !
MDE to MDB
Conversion Service
Źródło: www.EverythingAccess.com
Wymieniony serwis potrafi odzyskać oprócz projektu formularzy i raportów,
także kod VBA(!).
Opis problemu:
Wiemy, że można przekonwertować bazę MDB na jej skompilowaną postać (plik MDE) w celu ochrony projektu. Zdarza się jednak, że nasz źródłowy plik MDB ulegnie uszkodzeniu (lub go niechcący skasujemy) i zostaniemy jedynie ze skompilowanym programem MDE. Co wtedy robić? Czy jest jakaś możliwość odtworzenia źródłowej bazy na podstawie wyłącznie pliku MDE?
Rozwiązanie:
Sprawa nie jest prosta, konwersja do pliku MDE fizycznie usuwa z bazy wszelkie kody źródłowe naszych procedur i funkcji. Innymi słowy wszystko, co napisaliśmy w VBA - bezpowrotnie już zostało stracone, zostawiając jedynie skompilowany kod, zrozumiały wyłącznie dla maszyny.
Ale to jedyna zła wiadomość, pozostałe są już dobre. Przecież kod VBA, to nie jedyny element aplikacji accessowej, a wszystkie pozostałe da się odzyskać! Najprościej jest z tabelami, kwerendami. Wystarczy otworzyć nową bazę i zaimportować do niej te obiekty, wybierając odpowiednią opcję z menu. Trochę gorzej jest z makrami - Access 2000 nie pozwala importować makr tą metodą, ale wystarczy otworzyć dwa okna Accessa i skopiować makra przeciągając je myszką z jednej bazy (MDE) do drugiej (MDB).
Prawdziwy problem pojawia się, gdy chcemy zaimportować do nowej bazy formularze i raporty. Okazuje się, ze jest to niemożliwe żadną z wymienionych metod! Tu pojawia się rozczarowanie, bo przecież formularze to zwykle podstawowa częć naszej aplikacji.
Czy nie ma sposobu na odzyskanie formularzy? Wyzwanie podjął Krzysztof Naworyta i dokonał tego w swoim programie Mde2Mdb. Aplikacja jest napisana w postaci dodatku Add-in, co jest bardzo wygodne, bo możemy ją wywołać bezpośrednio z bazy do której będziemy kopiować odzyskane obiekty. Oczywiście uratowane formularze nie będą zawierały swoich modułów z procedurami zdarzeń. Ale często może się to okazać zbędne, biorąc pod uwagę, że wpadki z przypadkowym skasowaniem źródłowego pliku MDB, dotyczą zwykle początkujących twórców, którzy często w ogóle nie używają kodu VBA, opierając logikę swojej aplikacji na makrach. A nawet jeśli były jakieś procedury, to na pewno łatwiej je będzie napisać ponownie, jeśli odtworzymy wcześniej wszystkie pozostałe elementy projektu formularza. Zwłaszcza, że nazwy procedur również w programie Krzysztofa są odzyskiwane.
A oto fragment opisu autora:
Uwagi:
Korzystanie z programu Mde2Mdb w celu odzyskania formularzy nie jest takie zupełnie darmowe - wymaga wysłania kartki do autora, ale chyba nikt, komu ten użytek uratował kilka godzin lub dni pracy, nie uzna tej ceny za wygórowaną. Dodatkowo autor zdecydował się opublikować także niezabezpieczoną wersję źródłową bazy.
Oto wymieniony program (dla Acc. 97) w wersji źródłowej.
Prezentowany program ma bardzo praktyczne zastosowanie, dla niektórych może być wręcz wybawieniem, gdy nieostrożnie usunęli oryginalny plik MDB. Jednak ta aplikacja ma także swoje drugie znaczenie - dydaktyczne. Z pewnością interesujące będzie zajrzeć do tego kodu, aby poznać zasady pisania dodatków (Add-Ins) w Accessie, dowiedzieć się jak używać metod zewnętrznej aplikacji, jak budować moduły klas (np. jak zrobić klasę pozwalająca na sterowanie własnym paskiem postępu. Krzysztof rzadko w tym programie używa tradycyjnych modułów).
W programie są odtwarzane wszystkie cechy i elementy formularza metodą budowania ich od początku w kodzie. To zaawansowane mechanizmy dostępne w Accessie wykorzystywane w kreatorach, warto zobaczyć jak to się robi.
Analizując program nie mamy wątpliwości, że Krzysztof włożył dużo pracy w przygotowanie
tego softu. Powstała aplikacja unikalna, przydatna i kształcąca. Dowiemy się tam, jak
poznać czy obiekt jest tabelą, czy jest tabelą systemową, czy baza jest skompilowana do MDE.
Kto o tym wie, że podczas kompilacji bazy do MDE, Access tworzy dodatkową właściwość, którą
można odczytać za pomocą: CurrentDb.Properties("MDE")
?
Te ciekawostki przewijają się w programie Krzysztofa 'między wierszami' chociaż mogą stanowić samodzielny temat. Cieszę się, że mogę zaprezentować niniejszy Add-In na mojej stronie.