Bonjour, Henri ;
Le 07/07/2012 00:26, Henri Boyet a écrit : > > En fait, lors de mes essais, je ne faisais pas forcément de > copier/coller de Calc dans Base. Je ne me souviens plus pourquoi > j'avais abandonné cette méthode, il me semble que c'était une question > de formats des champs. J'avais essayé une autre démarche : créer une > nouvelle base, se connecter à une base existante, tableur. C'est sans > doute là que je n'avais pas de clé primaire. À creuser. Cet élément donne, me semble-t-il, l'explication à plusieurs de tes problèmes. Ceux-ci d'abord, mon interprétation ensuite : > (1) Je constate que je me suis mal exprimé. Je ne parlais pas > d'échanges entre des bases de types différents mais entre des bases de > mêmes structures. Supposons que la même commune a un emplacement > différent dans la table «T_Commune» de deux utilisateurs différents. > Si j'importe des enregistrements de la table «T_Eleves», le champ > «Commune» ne contient pas le nom de la commune mais un index vers la > ligne de la table «T_Communes». Que se passe-t-il puisque l'index ne > pointe plus vers la bonne valeur ? Je ne sais pas si je suis clair… > (2) Ce n'était pas un problème de relations. Il me semble me rappeler > que le problème principal était de rajouter un champ. Mais je > n'arrivais pas non plus à corriger des formats de champs qui ne > s'étaient pas importés correctement, en particulier les booléens. En fait, tu ne crées pas de "nouvelle" base de données avec la méthode que tu utilises. Tu crées un simple "conteneur" qui va conserver les paramètres de connexion à la "vraie" base de données et les objets spécifiques que tu pourras y rajouter (requêtes, formulaires, rapports). Mais les données elles-mêmes ainsi que la structure de la base restent conservées dans la source originelle, c'est-à-dire le classeur dans ton cas. Base fonctionne de la même façon pour la connexion vers n'importe quelle source externe, que ce soit un classeur, une base MySQL ou autre. C'est assez simple à vérifier : il suffit de regarder la taille du fichier odb entre une base "native" et une base externe. Elle varie considérablement, et c'esr encore plus net lorsque les données sont les mêmes, avec une base sous HSQL et les mêmes données sous MySQL par exemple. C'est aussi facile à vérifier autrement : fais une modification dans le classeur d'origine et réouvre la base : la modification sera apparente dans Base. Les données ne sont donc pas conservées dans Base, celle-ci se comporte comme une simple "fenêtre" vers les données d'origine. Ça peut paraître enquiquinant selon le problème que tu as à résoudre, mais en réalité c'est très bien comme ça. C'est même ça qui va permettre de partager une base de données entre plusieurs utilisateurs, et de permettre à chacun d'utiliser les données selon ses besoins propres : le "conteneur" odb pourra être personnel à chacun mais les données seront les mêmes pour tous. Pédagogiquement (je suis très égoïste...), ça ouvre de très intéressantes possibilités. Ça veut dire aussi que selon le type de la source, tu pourras ou ne pourras pas modifier la structure de la base. Ce sera possible par exemple sur une base MySQL (en fonction des droits utilisateurs sur la base et depuis peu, il me semble, parce que je me souviens que ce n'était pas possible sous OpenOffice), mais pas une une base de type "classeur", qui ne possède pas les caractéristiques (clé primaire, nature de champ, etc.) d'une table de base de données. AMHA, la connexion vers une feuille de calcul ne doit pas être retenue lorsqu'on veut construire une base de données relationnelle. Si dans les deux outils on parle de "table", la nature même de ces tables, leurs caractéristiques propres sont trop éloignées l'une de l'autre pour qu'une transition complète soit possible. La possibilité de transférer des tables de Calc vers Base est très intéressante, par exemple pour récupérer de gros volumes de données d'une autre source non directement compatible, ou si on veut "manipuler cette source différemment de ce que permet la version originelle. Dans un tel cas, exporter les données d'origine au format texte, les importer dans Calc puis dans Base, représente un gain de temps considérable par rapport à la saisie ex nihilo de ces mêmes données. La possibilité de se connecter directement sur une feuille de calcul est aussi intéressante, mais dans des cas particulier : je veux faire par exemple un publipostage à partie d'une liste d'adresses saisies dans un classeur. Je crée un "conteneur" Base lié à la feuille de calcul et j'utilise ce fichier odb comme source de données dans Writer. Pas de problème, c'est ultra-rapide et ça marche très bien. Mais à partir du moment où je veux pouvoir manipuler les adresses (quelles qu'en soient les raisons, la simple connexion vers la table ne suffit plus, il faut créer une "vraie" base relationnelle. > J'avais acheté un livre qu'on m'avait recommandé, "Pratique de MySQL > et PHP" mais ça dépassait mes capacités. Est-il possible d'utiliser > MySQL sans PHP ? Oui, sans aucune difficulté. Il est possible d'installer séparément un serveur PHP et un serveur MySQL. En fait, installer les deux (plus un serveur Apache ou IIS) est intéressant (et indispensable) pour ceux qui veulent créer une base de données accessible via un navigateur. MySQL fournit le moteur de base de données, Apache (ou IIS) l'accès Web et PHP l'outil de programmation qui permet de faire ce que l'on veut. C'est aussi intéressant (et indispensable) lorsqu'on veut administrer sa base de données via la célèbre interface PHPMyAdmin. Mais on peut très bien administrer une base MySQL avec des outils spécifiques comme HeidiSQL ou MyDB Studio (que j'utilisais il y a encore deux ans et ai abandonné au profit du premier cité, libre et aussi efficace une fois qu'on l'a pris en main). > > ... >> Si ces quelques indications peuvent t'aider, j'en suis heureux. >> >> Cordialement ; >> Marc > C'est un bon début, j'appellerai sans doute au secours en août. > > Encore merci, > > Henri Pas de problème, il y aura toujours quelqu'un au bout du fil. Cordialement ; Marc -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés