Oui, nous pouvons utiliser le pilote JDBC UCanAccess pour se connecter aux bases de données Access (.mdb et .accdb) dans LibreOffice Base. Voici comment je l'ai fait sur une installation propre d'Ubuntu 14.04 LTS.
Remarque importante: Ces instructions s'appliquent à UCanAccess version 3.0.5 et ultérieure (y compris la version 4.x). Avant de continuer, vérifiez que vous utilisez la dernière version d'UCanAccess, disponible ici.
Configuration à Faire une Fois
Tout d'abord, j'ai installé LibreOffice Base
sudo apt-get install libreoffice-base
Ensuite, j'ai téléchargé UCanAccess (fichier bin.zip
) et je l'ai décompressé dans le dossier
~/Téléchargements/JDBC/UCanAccess
Remarque: Lors de la décompression du fichier de distribution, assurez-vous de spécifier "Conserver la structure des répertoires" (ou similaire, en fonction de votre outil de décompression) pour que la structure des dossiers apparaisse comme dans la capture d'écran ci-dessus.
J'ai lancé LibreOffice (pas Base, juste LibreOffice lui-même)
et j'ai choisi Outils > Options
Dans l'onglet Avancé, j'ai cliqué sur le bouton "Chemin de classe..."
puis j'ai ajouté le fichier JAR suivant en utilisant le bouton "Ajouter Archive...":
/home/gord/Téléchargements/JDBC/UCanAccess/loader/ucanload.jar
Notez qu'il s'agit de ucanload.jar dans le sous-dossier loader/, pas de "ucanaccess-x.y.z.jar" dans le dossier racine UCanAccess.
Important: Vous devez fermer et réouvrir tous les composants LibreOffice (ou OpenOffice.org) pour que la nouvelle valeur "Chemin de classe..." prenne effet. Cela inclut toutes les fonctionnalités de "démarrage rapide" ou autres processus liés. (Si vous voulez jouer la sécurité, redémarrez simplement votre machine.)
Configuration par Base de Données
J'ai lancé LibreOffice Base, et à l'Étape 1 de l'assistant j'ai choisi "Se connecter à une base de données existante (JDBC)"
Le fichier Access que je voulais manipuler s'appelait "uca301demo.accdb" dans mon dossier Documents, donc à l'Étape 2 le "URL de la source de données" était ...
jdbc:ucanaccess:///home/gord/Documents/uca301demo.accdb
(notez que Base fournit le préfixe jdbc:
pour nous, donc tout ce que nous devons entrer est le reste de l'URL à partir de ucanaccess: ...
)
... et le "Classe de pilote JDBC" était
net.ucanaccess.jdbc.UcanloadDriver
À l'Étape 3, j'ai laissé le champ "Nom d'utilisateur" vide et j'ai simplement cliqué sur "Suivant >>".
À l'Étape 4, j'ai enregistré la base de données LibreOffice Base sous le nom "accdbTest.odb" dans mon dossier Documents.
Lorsque l'assistant s'est terminé, il a ouvert ma base de données LibreOffice et j'ai pu voir les tables et les requêtes enregistrées dans le fichier .accdb
Dépannage
Si vous utilisez une distribution qui installe LibreOffice Base par défaut (par exemple, Linux Mint), vous pouvez rencontrer l'erreur
La connexion à la source de données "MaBaseDeDonnées" n'a pas pu être établie.
'org.hsqldb.persist.HsqlProperties org.hsqldb.DatabaseURL.parseURL(java.lang.String, boolean, boolean)'
Cela est dû au fait que LibreOffice a installé sa propre copie (assez ancienne) de HSQLDB qui entre en conflit avec UCanAccess. Pour résoudre cela, supprimez la copie de LibreOffice de HSQLDB. Par exemple, sur Linux Mint cela serait
sudo apt remove libhsqldb1.8.0-java
De plus, si LibreOffice Base ne fonctionne pas pour une raison quelconque, vous pouvez utiliser DBeaver à la place. L'installation de l'édition (gratuite) Community est aussi simple que
sudo snap install dbeaver-ce