stephane Feray a écrit :
Bonsoir, je débute avec base Openoffice vers 3 (sur mac et PC)
Je suis en train de mettre au point une base de donnée pour notre association,

Donc voici Problème :
J'ai une table Communes avec les champs Communes, Cantons et Pays.
Une autre table Données avec les champs Commune, canton, Nom bénéficiaire, Artisan1, Artisan2, Pays

J'ai crée un formulaire avec une liste déroulante qui liste les champs 'Communes' de la table Commune et affecte de cette valeur le champ 'Commune' de la table Données.

Jusqu'ici aucun problème
J'aimerais aussi affecter en même temps les champs canton et Pays de la table Données par les valeurs correspondantes de la Commune. Bref, lorsque je choisi une commune dans la liste déroulante, que les champs canton et Pays de la table données soient mis à jour.

Je pense qu'il faut utiliser une macro, qui se déclenche à l'évenement modifié de la listbox. Mais comment récupérer les valeurs correspondantes à une commune et comment les transférer d'une table à l'autre?

J'avoue que je me perds dans toute la documentation macro.... Existe-t-il une méthode simple et assez commentée pour que je puisse réaliser cette macro, qui a priori ne devrait pas trop compliqué

Vous trouverez en pièce jointe une version simplifiée de la base...
Merci de votre aide,
--
Stéphane
Bonjour,

Avant que d'essayer d'apporter une réponse technique, je pense qu'il est nécessaire de passer par une interrogation sur la conception de ta base.

Dans la mesure où une commune n'est pas supposée changer de canton ni de pays entre deux enregistrements, je ne vois pas quelle utilité peut exister à stocker, dans la table Données, les informations relatives au canton et au pays ; dès lors que tu as mentionné la commune pour un tuple de la table Données, et dès lors que cette commune figure dans la table Communes, l'information sur le canton et le pays du tuple concerné de la table Données est connu, sans qu'il soit besoin de faire figurer ces informations dans la table elle-même.

Autrement dit, ces informations n'ont pas besoin d'être stockées dans la table elle-même, l'intérêt de la base de données étant précisément de récupérer l'information dans les différentes tables de la base, à l'instant où on en a besoin et de fournir une information toujours "actualisée".

Imagine que, en plus des informations mentionnées, ta table Communes contienne une mention "Communauté de communes" ; imagine que, pour x ou y raisons, une commune décide de quitter la communauté de commune dans laquelle elle se trouvait jusqu'à présent pour en rejoindre une voisine ; dans ton organisation, il faudrait modifier tous les enregistrements de ta table Données qui comportent la commune concernée ; dans une table normalement constituée, il suffit de modifier le contenu du champ "Communauté de communes" de ta table Communes pour la commune concernée (donc une seule modification) pour que cette modification soit prise en compte lors de toutes les futures interrogations de ta base portant sur un enregistrement affecté de cette commune.

Maintenant, tu vas me dire, que c'est bien beau tout ça, mais que toi, tu as besoin de ressortir dans un formulaire ou un publipostage, les informations relatives au canton et au pays de chaque enregistrement de la table Données ; aucune difficulté, c'est le boulot des bases de données ; pour un formulaire, il te suffit de créer un formulaire et un sous-formulaire (dans le même document), dans un premier temps au moyen de l'assistant pour découvrir les bases, ensuite par tes propres moyens (tu verras que 'on peut créer de cette façon, des sous-sous-formulaires ainsi que des sous-sous-sous-formulaires, et ainsi de suite) ; au besoin, tu pourras te replonger dans les archives de cette liste dans lesquelles doivent figurer les traces d'une longue discussion que j'ai eue l'été dernier sur ce même propos (ça doit même être là http://fr.openoffice.org/servlets/ReadMsg?list=users&msgNo=72049) ; il est possible que tu en tires quelques informations ; pour un publipostage, il te faudra écrire une requête combinant les deux tables (c'est relativement simple) et établir ton publipostage sur cette requête ; au besoin, tu pourras même générer une table à partir des résultats de ta requête (cette table se mettra à jour constamment, en fonction de l'évolution des tables Communes et Données).

A+




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à