Otwieranie baz danych Microsoft Access w programie LibreOffice/OpenOffice Base

Kategoria: Oprogramowanie Data publikacji: 15 komentarzy

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.

  1. 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.
  2. 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.
  3. 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”.
  4. LibreOffice Base - ustawienia klas JavyKliknij 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 podkatalogu lib i dodawaj pojedynczo wszystkie znajdujące się w nim pliki w ten sam sposób.
  5. 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.

  1. Uruchom program LibreOffice Base/OpenOffice Base lub kliknij na ekranie startowym LibreOffice „Utwórz: Bazę danych”.
  2. 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”.
  3. LibreOffice Base - tworzenie bazyTeraz, 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.
  4. W polu „Klasa sterownika JDBC” wpisz net.ucanaccess.jdbc.UcanaccessDriver.
  5. 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.

LibreOffice Base - przykładowa bazaJeż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.

LibreOffice Base - komunikat błęduJeś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)

  1. Edyta

    A co w przypadku kiedy klasa sterownika nie działa? pokazuje się komunikat , że nie udało się wczytać klasy sterownika?

  2. 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.

  3. 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ć?

  4. 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.

  5. 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?

  6. 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.”

  7. 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”.

  8. 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

  9. LJ

    Podczas otwierania bazy mam komunikat: Nie udało się wczytać klasy sterownika 'net.ucanaccess.jdbc.UcanaccessDriver’. Wszystko robiłem według instrukcji.

Dodaj komentarz