Lier des feuilles ODS à une base ODB est ce possible ?

Bonjour,

Je me prend la tête depuis pas mal de temps (alors que sous access en 2
clicks c'est fait (donnés externes, Excel, Lier la source de données en
créant une table attachée.)) pour lier des feuilles de données ODS dans une
base ODB ,déjà juste 1 feuille j'y arrive pas ....
En fait si une feuille j'y arrive en créant une nouvelle base, mais après je
ne peux plus rajouter de tables.

Mon problème est que dans une feuille j'ai + de 255 colonnes, ce qui fait
que Access m'est inutile. J’essaie donc sous LibreOffice Base, mais
impossible de trouver comment lier des feuilles à une base ...

Mon but n'est pas d'importer (j'ai compris le copier/coller), mais bien de
LIER, les changements de données ce faisant donc uniquement dans CALC.

Est ce vraiment possible comme Access ?

Merci, Sat.

Bonjour

satrincha60 wrote

Mon problème est que dans une feuille j'ai + de 255 colonnes, ce qui fait
que Access m'est inutile. J’essaie donc sous LibreOffice Base, mais
impossible de trouver comment lier des feuilles à une base ...

À ma connaissance plusieurs limitations t'empêcheront d'obtenir ton
résultat:
- le nombre de colonnes reprises d'une feuille sera limité aussi à 255
colonnes
(que la source soit un classeur Excel ou Calc)
- il n'est pas possible de lier des tables provenant d'un classeur dans une
base hsql (toujours à ma connaissance ce n'est possible que pour des
tables au format texte)
cf. https://wiki.documentfoundation.org/FR/FAQ/Base/143

Un contournement pourrait être de créer une feuille supplémentaire
dans ton classeur, feuille qui afficherait les données des colonnes
"surnuméraires" de la feuille initiale.

Un autre problème se poserait alors : impossibilité de créer des
jointures avec une source "tableur" (donc impossible de réunir
les deux tables dans une requête).

La meilleure solution serait donc peut-être de réaliser tes traitements
directement dans le tableur... ?

Cordialement
Pierre-Yves

Il faudrait vraiment voir/ comprendre ton besoin pour essayer de trouver une
autre façon de faire !

Merci pour vos réponses.

C'est étrange car si je fais un import de ma page Calc dans une table (par
copier/coller), j'ai bien toutes mes colonnes. Alors que dans Access j'ai la
limite des 255, et après je peux rien faire car il me dit qu'il sait pas
gérer.

Mais comme ma source est un export sous Excel/Calc, c'est pour ça que je
veux faire un lien, car c'est voué à changer régulièrement.

C'est pour gérer une extraction d'inventaire. J'ai plusieurs fichiers
(matériels, logiciels, systèmes, imprimantes, etc ...)
Et seul le fichiers logiciels est gros. J'ai fait un lien pour les autres,
avec formulaires et états , ça permet d'y voir + clair qu'un tableau excel.

Pour mon gros fichier, je pensais le couper en 2 (en gardant le nom de la
machine comme point commun) et faire des sous-formulaires (ayant ni clé ni
nom de colonne ça devrait le faire).
Ou faire une macros qui purge le fichier Excel et virer tout ce qui est
inutile serait plus simple ?

Ce serait en tous cas la solution la plus sûre sur le long terme et la plus ergonomique.

Bonjour

satrincha60 wrote

comme ma source est un export sous Excel/Calc, c'est pour ça que je veux
faire un lien, car c'est voué à changer régulièrement.
...
C'est pour gérer une extraction d'inventaire.

Si je comprends bien ton fichier Excel est un export depuis ton logiciel
d'inventaire. Si oui on peut supposer qu'un export texte devrait suffire
(au sens de pas besoin de formules de calculs). Il est vraisemblable que ton
logiciel permet ce type d'export.

Si ces hypothèses sont justes, pourquoi ne pas essayer les liaisons de
tables "texte" présentées dans la FAQ que j'évoquais précédemment ?
https://wiki.documentfoundation.org/FR/FAQ/Base/143

Cordialement
Pierre-Yves

Bonjour,

Mon export est directement en CSV. J'ai testé avec un petit CSV et cela
fonctionne. Mais on doit obligatoirement entrer des noms de colonnes dans la
requête SQL ?

Car si j'en ai 300 en sachant que si un logiciel fraichement ajouté vient
s’incruster dedans, ça va être compliqué. (même en purgeant je devrais être
entre 200 et 250 car dans mon fichier 1 version = 1 colonne, par exemple si
j'ai Flash 11, 11.5, 12 et 13, ça me fait 4 colonnes.).

Bonjour

satrincha60 wrote

Mon export est directement en CSV. J'ai testé avec un petit CSV et cela
fonctionne. Mais on doit obligatoirement entrer des noms de colonnes dans
la requête SQL ?

Oui

satrincha60 wrote

Car si j'en ai 300 en sachant que si un logiciel fraichement ajouté vient
s’incruster dedans, ça va être compliqué. (même en purgeant je devrais
être entre 200 et 250 car dans mon fichier 1 version = 1 colonne, par
exemple si j'ai Flash 11, 11.5, 12 et 13, ça me fait 4 colonnes.).

Tu peux toujours créer la première fois la structure avec le nombre maxi de
champs.
S'il ne sont pas tous toujours utilisés pas grave (je ne suis pas sûr que tu
puisses en créer +de 255,
je n'ai pas fait l'essai) .

Cela dit ton exemple sur les logiciels m'alerte car ceci ne devrait pas
générer de colonnes
supplémentaires mais des enregistrements supplémentaires. Es-tu sûr de ton
modèle de
données ?

Cordialement
Pierre-Yves

Cela ne m’arrange pas de devoir entrer les 200/250 noms de colonnes car c’est
dynamique. Si j’ajoute un logiciel sur un poste, je dois tout déplacer
manuellement. Surtout que concrètement, je n’ai pas besoin de nom de colonne
(tout comme je n’ai pas besoin de clé).

Oui je suis sûr pour mon modèle de données.
Par exemple mon fichier brut est comme cela (j'ai 9 fichiers différents de
ce type, seul celui des logiciels est gros) :

NomMachine1;*;Logiciel2;Logiciel3;Logiciel4;*;*;Logiciel7;….. ;Logiciel355
NomMachine2;*;Logiciel2;Logiciel3;Logiciel4;*;*;Logiciel7;….. ;Logiciel355
NomMachine3;Logiciel1;*;*;Logiciel4;*;Logiciel6;*;…..;*
NomMachine4;Logiciel1;Logiciel2;Logiciel3;Logiciel4;Logiciel5;Logiciel6;Logiciel7;…..
;Logiciel355
NomMachine5;*;Logiciel2;*;Logiciel4;*;*;*;….. ;*

En fin de semaine dernière, une connaissance m’a donné une astuce pas mal
pour ne plus avoir de problème de nombre de colonne, c’est de supprimer les
étoiles (qui correspondent a une case vide).
Ce qui donnerais ça :

NomMachine1;Logiciel2;Logiciel3;Logiciel4;*;Logiciel7;….. ;Logiciel355
NomMachine2;Logiciel2;Logiciel3;Logiciel4;*;Logiciel7;….. ;Logiciel355
NomMachine3;Logiciel1;Logiciel4;Logiciel6;…..
NomMachine4;Logiciel1;Logiciel2;Logiciel3;Logiciel4;Logiciel5;Logiciel6;Logiciel7;…..
;Logiciel355
NomMachine5;Logiciel2;Logiciel4;…..

J’ai maintenant réussis à faire une liaison sans problème, et faire mon
formulaire avec sous-formulaire. Mais du coup sous Access. Base ne proposant
pas de faire une liaison avec un fichier Calc aussi simplement que chez M$
(je suis plutôt dans le technique, je ne maitrise que les bases en tableurs)
.

Mais je suis confronté à une nouvelle problématique …. Comme maintenant un
logiciel peut être dans plusieurs colonnes, comment je fais un état d’un
logiciel pour me sortir les machines sur lequel il est :(.

Cela ne m’arrange pas de devoir entrer les 200/250 noms de colonnes car c’est
dynamique. Si j’ajoute un logiciel sur un poste, je dois tout déplacer
manuellement. Surtout que concrètement, je n’ai pas besoin de nom de colonne
(tout comme je n’ai pas besoin de clé).

Oui je suis sûr pour mon modèle de données.
Par exemple mon fichier brut est comme cela (j'ai 9 fichiers différents de
ce type, seul celui des logiciels est gros) :

NomMachine1;*;Logiciel2;Logiciel3;Logiciel4;*;*;Logiciel7;….. ;Logiciel355
NomMachine2;*;Logiciel2;Logiciel3;Logiciel4;*;*;Logiciel7;….. ;Logiciel355
NomMachine3;Logiciel1;*;*;Logiciel4;*;Logiciel6;*;…..;*
NomMachine4;Logiciel1;Logiciel2;Logiciel3;Logiciel4;Logiciel5;Logiciel6;Logiciel7;…..
;Logiciel355
NomMachine5;*;Logiciel2;*;Logiciel4;*;*;*;….. ;*

En fin de semaine dernière, une connaissance m’a donné une astuce pas mal
pour ne plus avoir de problème de nombre de colonne, c’est de supprimer les
étoiles (qui correspondent a une case vide).
Ce qui donnerais ça :

NomMachine1;Logiciel2;Logiciel3;Logiciel4;*;Logiciel7;….. ;Logiciel355
NomMachine2;Logiciel2;Logiciel3;Logiciel4;*;Logiciel7;….. ;Logiciel355
NomMachine3;Logiciel1;Logiciel4;Logiciel6;…..
NomMachine4;Logiciel1;Logiciel2;Logiciel3;Logiciel4;Logiciel5;Logiciel6;Logiciel7;…..
;Logiciel355
NomMachine5;Logiciel2;Logiciel4;…..

J’ai maintenant réussis à faire une liaison sans problème, et faire mon
formulaire avec sous-formulaire. Mais du coup sous Access. Base ne proposant
pas de faire une liaison avec un fichier Calc aussi simplement que chez M$
(je suis plutôt dans le technique, je ne maitrise que les bases en tableurs)
.

Mais je suis confronté à une nouvelle problématique …. Comme maintenant un
logiciel peut être dans plusieurs colonnes, comment je fais un état d’un
logiciel pour me sortir les machines sur lequel il est :(.

Ce que tu veux peut être calculé dans Calc par la Fonction NB.SI