- Mettre votre base de données Gnucash en SQLite : (si ce n’est déjà fait)
installer le pilote SQLite : dans la Logithèque, rechercher Gnucash, puis ajouter le greffon optionnel « Pilote de base de données SQLite3 pour libdi »
enregistrer votre base en SQLite : dans Gnucash, menu « fichier », « enregistrer sous », puis sélectionner le format de données « sqlite3 »
NB : vous pouvez continuer à travailler sur cette nouvelle base
- Préparer la connexion ODBC pour Libre Office :
installer le pilote ODBC : dans la Logithèque, rechercher Base, puis ajouter le greffon optionnel « ODBC driver for SQLite embedded database (libsqliteodbc)
vérifier la présence du fichier /etc/odbcinst.ini qui devrait contenir :
[SQLite]
Description = SQLite ODBC Driver
Driver = libsqliteodbc.so
Setup = libsqliteodbc.so
UsageCount = 1
[SQLite3]
Description = SQLite3 ODBC Driver
Driver = libsqlite3odbc.so
Setup = libsqlite3odbc.so
UsageCount = 1
- Si ce n’est pas le cas, installer unixodbc depuis la logithèque et/ou voir la documentation Ubuntu : http://doc.ubuntu-fr.org/tutoriel/comment_utiliser_des_connexions_odbc
- modifier le fichier .odbc.ini dans votre dossier personnel en indiquant :
[Le nom de votre comptabilité]
Driver=SQLITE3
Database=/home/votrenom/VotredossierGnucash/Votrebasededonnées.gnucash
- Préparer dans Base la requête qui vous permettra de lire les données sous forme d’un journal général :
Dans Libre Office, créer une nouvelle base de données
choisir : « connecter une base de données existantes » et sélectionner ODBC
puis sélectionner votre base [le nom de votre comptabilité] comme source ODBC
créer une nouvelle requête en mode SQL en collant le code ci-dessous :
SELECT strftime( ‘%Y-%m-%d’, SUBSTR( « transactions ». »post_date », 1, 4 ) || « – » || SUBSTR( « transactions ». »post_date », 5, 2 ) || « – » || SUBSTR( « transactions ». »post_date », 7, 2 ), ‘+1 day’ ) AS « Date », « transactions ». »description » AS « Libellé », « accounts ». »code » AS « Numéro », « accounts ». »name » AS « Compte », CASE WHEN « value_num » > 0 THEN ROUND( « splits ». »value_num », 0 ) / ROUND( « splits ». »value_denom » ) ELSE « » END AS « Débit », CASE WHEN « value_num » < 0 THEN ROUND( « splits ». »value_num », 0 ) / ROUND( « splits ». »value_denom » ) ELSE « » END AS « Crédit » FROM « transactions », « splits », « accounts » WHERE « transactions ». »guid » = « splits ». »tx_guid » AND « accounts ». »guid » = « splits ». »account_guid »
- Cela va vous donner un tableau avec : la date, le libellé de l’opération, le numéro de compte (si renseigné), la dénomination du compte, le montant débité ou le montant crédité
- Cette requête corrige quelques problèmes :
la date qui est au format AAAAMMJJHHMMSS sous forme texte avec un jour de décalage (?)
les valeurs qui sont également au format texte
- dans Base en créant vos propres rapport : balance, grand livre comptable, regroupements de mouvements par dates, etc. Vous pouvez également modifier la requête pour ajouter des critères et/ou fonctions d’agrégation.
- dans Calc : pour transférer le résultat de la requête :
- dans Base : copier la requête en faisant un clic droit sur le nom de la requête, puis copier
- dans Calc : coller dans une cellule
- vous pouvez ensuite triturer les données dans tous les sens et/ou utiliser les tables de pilote (menu « Données »).