Otwieranie baz danych Microsoft Access w programie LibreOffice/OpenOffice Base
Domyślnie program Base pakietów LibreOffice i OpenOffice potrafi obsłużyć jedynie pliki w swoim własnym formacie OpenDocument Base (*.odb). Co jednak zrobić, gdy zaistnieje potrzeba przejrzenia lub edycji bazy danych programu Microsoft Access w formacie *.accdb lub starszym *.mdb w darmowym pakiecie biurowym? Istnieje na to pewien nieoczywisty, ale nietrudny sposób.
Na owy sposób natrafiłem przypadkiem, szukając w Internecie informacji o dodatkach, które umożliwiłyby na Linuksie przeglądanie i edycję microsoftowej bazy danych.
Ostrzegam, że sposób ten nie dość, że jest, choć nietrudny, niewygodny, to nie ma stuprocentowej kompatybilności – warto dla bezpieczeństwa przed edycją bazy danych Accessa otwartej w ten sposób w LibreOffice/OpenOffice utworzyć jej kopię.
Poniższe czynności wykonywałem na Linuksie w programie LibreOffice. Mechanizm powinien zadziałać też w starszym bracie LO – OpenOffice, a także w systemie Windows.
Przygotowanie LibreOffice/OpenOffice
Przed otwarciem bazy należy przygotować program Base.
- Najpierw musisz ściągnąć zestaw klas napisanych w języku Java o nazwie UCanAccess. Pobierzesz go ze strony sourceforge.net. Następnie wypakuj pobrany plik ZIP.
- Wypakowany katalog umieścić w konkretnym, niezmiennym folderze. To bardzo ważne! Nie możesz go byle jak walnąć na pulpicie, żeby po chwili usunąć. Umieść go w miejscu, z którego go nie usuniesz, w którym nie będzie ci przeszkadzać. W Linuksie może być to ukryty podfolder katalogu domowego, w Windows może być to folder
C:\Users\nazwaUżytkownika\AppData
. - Uruchom program LibreOffice (dowolny moduł pakietu). Kliknij menu „Narzędzia”, pozycję „Opcje”. W oknie opcji rozwiń „LibreOffice” i wybierz „Zaawansowane”. Jeśli nie jest zaznaczona, zaznacz opcję „Używaj środowiska Java”.
- Kliknij przycisk „Ścieżka do klas”. W nowym oknie kliknij przycisk „Dodaj archiwum…”. Odnajdź utworzony przed chwilą folder, wskaż w nim plik o nazwie
ucanaccess-2.0.9.3.jar
(numerki na końcu mogą się różnić). Następnie ponownie kliknij „Dodaj archiwum…”, przejdź do podkatalogulib
i dodawaj pojedynczo wszystkie znajdujące się w nim pliki w ten sam sposób. - Zapisz zmiany, klikając w obydwu oknach przycisk „OK”.
Otwieranie bazy danych
Niestety otwarcie bazy Microsoft Access w sposób bezpośredni nie jest możliwe. Należy utworzyć spreparowany plik OpenDocument Base, który będzie swego rodzaju „pośrednikiem” między pakietem LibreOffice/OpenOffice a samą bazą danych.
- Uruchom program LibreOffice Base/OpenOffice Base lub kliknij na ekranie startowym LibreOffice „Utwórz: Bazę danych”.
- W oknie kreatora nie zaznaczaj „Otwórz istniejący plik bazy danych”, zaznacz „Połącz z istniejącą bazą danych”. Pozostaw wybraną opcję „JDBC” i kliknij „Dalej”.
- Teraz, dla niektórych, najtrudniejsze. Do pola tekstowego „URL źródła danych” zaczynającego się od ciągu „jdbc:” dopisz ciąg „ucanaccess://”. Następnie po znakach „//” musisz wpisać bezwzględną ścieżkę do pliku Accessa. Jeżeli na Windows Vista lub nowszych twój plik bazy Accessa jest np. na pulpicie, to ścieżka będzie podobna do:
C:\Users\nazwaUzytkownika\Desktop\nazwaBazy.accdb
. Musisz podać całą ścieżkę – partycję, kolejne katalogi, nazwę pliku i rozszerzenie. Na Linuksie będzie to np./home/nazwaUzytkownika/nazwaBazy.accdb
. - W polu „Klasa sterownika JDBC” wpisz
net.ucanaccess.jdbc.UcanaccessDriver
. - W kolejnych krokach klikaj „Dalej”. Jeżeli baza jest zabezpieczona hasłem, podaj je. Nie musisz rejestrować bazy danych w LibreOffice/OpenOffice. Ostatecznie kliknij „Zakończ”. Plik *.odb możesz zapisać w dowolnym miejscu, choć najwygodniej byłoby w tym katalogu, w którym znajduje się plik bazy Accessa.
Jeżeli wszystko się powiodło, po otwarciu pliku powinna pokazać się zawartość bazy Microsoft Access. Jeżeli w kroku trzecim przygotowywania pakietu pole „Używaj środowiska Java” było odznaczone, może być konieczny restart pakietu.
Jeśli pojawia się błąd o treści „given file does not exists” oznacza to, że w trzecim kroku otwierania bazy danych podano niewłaściwą ścieżkę do pliku bazy Accessa. Nie musisz wtedy tworzyć wszystkiego od nowa – w menu „Edycja” kliknij „Baza danych” i „Właściwości”. W nowo otwartym oknie spróbuj wtedy podać poprawną ścieżkę.
Komentarze (15)
Edyta
A co w przypadku kiedy klasa sterownika nie działa? pokazuje się komunikat , że nie udało się wczytać klasy sterownika?
Tomasz Gąsior
Kiedy taki komunikat się pojawia? W którym momencie całej operacji? Po dodaniu ścieżek do klas w oknie ustawień LibreOffice czy przy tworzeniu pliku *.odb, czy może już przy otwieraniu go? Sugeruję:
– sprawdzić, czy Java jest jest zainstalowana – jeśli nie, zainstalować ze strony https://www.java.com/pl/ ,
– pobrać ponownie pliki klas UCanAccess, dodać je jeszcze raz do programu LibreOffice.
Adam
U mnie program łączy się z bazą ale przed otwarciem podaje, że nie może dekodować bazy ponieważ moduł dekodowania nie jest zawarty w sterowniku ucanaccess. Co robić?
Tomasz Gąsior
Podaj dokładny komunikat błędu, najlepiej zrzut ekranu. Wykonaj też wszystkie czynności w poradniku od nowa. Jeśli to możliwe, możesz wysłać mi swoją bazę – wtedy spróbuję u siebie podpiąć ją pod LO.
Ryszard
A jak w bazie libreOffice z konstruować pola wyliczalne np sumujące
Jan
A co jeżeli mi się błąd wyświetla że nie może znaleść javy?
Tomasz Gąsior
@Jan
Trzeba zainstalować Javę w systemie. ;)
Radek
„Tomasz Gąsior4 lutego 2019, 18:34
@Jan
Trzeba zainstalować Javę w systemie. ;)”
A co jeśli Java została zainstalowana (najnowsza wersja) i w LibreOffice base (po dodaniu klas sterownika itd.) na koniec pojawia się nadal komunikat, że (w skrócie mówiąc) brak Javy?
Radek
Czy mogę prosić o taką samą pomoc?
„Tomasz Gąsior2 kwietnia 2016, 08:49
Podaj dokładny komunikat błędu, najlepiej zrzut ekranu. Wykonaj też wszystkie czynności w poradniku od nowa. Jeśli to możliwe, możesz wysłać mi swoją bazę – wtedy spróbuję u siebie podpiąć ją pod LO.”
Tomasz Gąsior
Od napisania niniejszego wpisu minęło wiele lat i nie mam pojęcia, czy opisane wyżej rozwiązanie obecnie działa. Jeżeli pana baza nie zawiera żadnych danych prywatnych, możemy spróbować — mój mail jest w zakładce „kontakt”.
Jarek
Tomasz – jesteś Bogiem!! To działa. Przez miesiąc szukałem rozwiązania tego problemu i nic, aż tu nagle trafiłem ta net wpis. Dzięki!! Do otwarcia bazy użyłem najnowszego LibreOffice wersja 64bit oraz bazy Access 2013 z rozszeżeniem accdb. Pozdrawiam
stała+czytelniczka
Ja tak z innej beczki, ale odkryłam przez ostatni rok fajny pakiet WPS :)
Marcin
Mamy 2021 rok i rozwiązanie nadal działa. Wielkie dzięki!
LJ
Podczas otwierania bazy mam komunikat: Nie udało się wczytać klasy sterownika 'net.ucanaccess.jdbc.UcanaccessDriver’. Wszystko robiłem według instrukcji.
Lech Kozłowski
Wspaniały opis. Dziękuję bardzo. Serdecznie pozdrawiam.
L.K.
Dodaj komentarz