Aide sur champ

Fermé
Shimano - 7 déc. 2022 à 10:04
 Shimano - 20 déc. 2022 à 11:20

Bonjour à tous,
Je suis totalement débutant sous Access 2003 (oui, c'est vieux).
Au boulot, j'ai une base access qui sert à enregistrer des informations.
Dans un formulaire, j'ai une liste déroulante de communes et au dessus de ce champ, j'ai le numéro de département qui s'affiche selon une table "Commune" qui est pré-remplie.
Dans un autre formulaire, je voudrais que dans un champ que le numéro de département se reporte dedans.
Est-ce possible ?
Comment faire ?
J'espère avoir été clair dans mes explications?
Merci de votre aide.


Windows / Firefox 91.0

17 réponses

yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
7 déc. 2022 à 10:41

bonjour,

peux-tu partager ton fichier?

1
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
Modifié le 7 déc. 2022 à 21:30

J 'ai déjà fait ce genre truc, mais c'était à partir d'une table contenant les codes postaux de Belgique. 

Dans une premier temps, j'ai créé une table  T_clients contenant les champs suivants : 

Attention toutes fois, les champs CodeLocalite ,  Code Postal et Localité ont été ajouté par après

en mode Affichage cela donne ceci  

ensuite , j'ai une table T_codes_pos  avec les champs suivants 

 en mode affichage cela donne ceci  : 

 j'ai  créé la  requête suivante :

   ce qui affiche ceci 

 ensuite, on crée un formulaire en mode création 

 on va ajouter trois  zones de liste déroulante à notre formulaire 

Ici  par défaut, la liste déroulante est nommée Modifiable 7  .  je sélectionne  comme sur l'image et fais suivant 

ici, je choisi ma table  T_codes_pos  et appuye sur suivant 

 Je choisi le champs qui seront afficher dans la liste déroulante dans  mon formulaire  ici j'en choisi  3  Numéro; Code_pos et Commune_min   puis suivant 

je souhaite faire un tri par ordre croissant sur le champ   Code_pos ,    ce qui aura pour but d'afficher par exemple  le code postal 4000  puis 4001 etc..etc...   comme sur l'image ci-dessous

 je fais suivant 

 je fais encore suivant  

je peux changer le nom de l'étiquette et appuyer sur terminer   

 je quitte le mode création pour le mode affichage (formulaire) et je peux voir le résultat de la première liste déroulante 

pour la deuxième liste , je fais la même chose ou presque 

 ici je change l'ordre entre commune_min et Code_pos 

 il n'y pas besoin de faire un tri donc... suivant 

 Noté que le champ clé est caché  , faite suivant 

 choisir suivant 

 je change Commune_min  par Localité et j'appuye sur terminer 

j'affiche le résultat  et je peux voir que mes deux champs ont bien les données de la table T_codes_pos  mais si je change la localité , le code postal ne change pas lui donc pour remédier à ce petit problème, je vais créer une troisième liste déroulante indépendante qui sera  cachée dans le futur .

 c'est ici que la magie s'opère  dans la feuille de propriété de la liste déroulante , je vais taper  CodeLocalite sur  source contrôle (voir image ci-dessus)  , ensuite sur contenu, je mets T_codes_pos (la table qui contient les codes postaux) , l'origine de la source quand a elle est sur  Table/Requête  enfin je mets sur colonnes liées  : 3

 Ensuite, toujours en mode création, je sélectionne la liste déroulante des codes postaux  et dans la feuille des propriétés ,  sur source Contrôle ,  je mets  CodeLocalite   ,  contenu  :  T_codes_pos  Origine : Table/Requête  colonnes liée : 3 

je fais de même pour la liste déroulante contenant les localités (villes) .

Si je reviens en mode affichage, vous pourrez voir que les trois listes contiennent des données, mais le problème reste le même. Nous allons donc dans le mode création  sélectionner la liste déroulante qui sera cachée ,   nous allons dans l'onglet  format des propriétés  et nous allons changer les options suivantes : 

Nombre de colonnes   de  1 ,    on le mets sur 3 

largeur colonne   on peut mettre 3cm;0cm;0cm


1
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
Modifié le 7 déc. 2022 à 22:42

 veuillez voir que sur le formulaire ci-dessous, la liste "modifiable11"  a disparu  (  visible =non) 


1

Merci.

Je vais essayer de mettre cela en place. Je reviens vers toi si je bloque !

0
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
Modifié le 8 déc. 2022 à 17:20

J'ai oublier de d'écrire  que  la table  T_codes_pos ,  doit se comporter comme une table indépendante,  je veux dire par là,  que dans les relations de votre base de données, cette table n'est rattaché à aucune autre table comme sur l'image suivante  : 

Vous remarquerez que plusieurs tables ont comme champ  CodeLocalite , ce qui signifie que ces tables interagissent à la table T_codes_pos .  Elles vont chercher l'identifiant du code postal et/ou du nom de la commune et stock cet identifiant dans leur champ CodeLocalite 

Exemple : dans table de mes codes postaux,    la commune de  Bruxelles dont le code postal est 1000   a pour identifiant le n°  414 

Donc toutes les tables  qui a le champ CodeLocalite sur  414  pointera  dans la liste déroulante des codes postaux  1000  et dans la liste déroulante des localités  Bruxelles. 

Si , je change le code 414  par un autre ,  les listes déroulantes pointerons vers d'autres données.

j'espère que je me suis assez fait comprendre car c'est pas facile d'expliquer .

Si besoin, revenez vers moi . 

ce serait bien de me montrer votre table  via CJoint    ou du moins une partie avec quelques données pour mieux comprendre votre table .            


1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
12 déc. 2022 à 15:30

La table des départements et celle des communes sont des tables  séparée  ? 

comment se nomme la clé primaire sur la table des départements ? 

et comment se nomme celle de la table des communes ? 

exp:  ID_départements  ? 

car sur le morceau de ta table communes, je ne vois pas l'ID  ,  (sans doute caché )   par contre je vois  les champs Nom ; Département; Code postal et zone

je suppose que si pour cela tu travaille sur deux tables, elles sont  reliée  dans les relations, et tu as sans doute fait une requête pour afficher  le département, le numéro du département ,  puis le code postal  et la commune  


1

A toutes tes questions, je crois qu'il n'y a qu'une clef primaire et c'est celle du numéro de fiche.

Et oui, il me semble qu'il y a une requete pour que départment s'affiche (sans certitude).

0
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
12 déc. 2022 à 15:34

tu peux toujours afficher le département ou son n° ,   mais je pense qu'il te fasse utilisé un champ indépendant dans ton forumailre  comme je l'ai montrer plus haut voir post <16> 


1

A tes suggestions, je ne te cache pas, que je suis plus que perdu dans ce type de manipulation.

Il faudrait que je trouve quelqu'un qui puisse m'assurer la maintenance, la modernisation et l'aide comme la formation pour adapter, optimiser et suivre ce travail de titan de remise à niveau.

Alors, j'essaye à mon petit niveau d'améliorer, mais, je suis loin d'être la personne car tout cela est pour moi de la programmation.

Alors, je suis preneur de tout, mais si on peut rester sur une base de donnée (en Access 2003) avec des requetes, je prends !

Je sais, j'en demande beaucoup et je vous remercie de toute l'aide que vous m'apportez.

0
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
15 déc. 2022 à 18:29

Bonjour, 

Je ne connais pas ta et/ou tes tables avec lesquelles tu travaille,  je pense que tu devrais peut-être avoir une table uniquement avec les codes postaux et une table avec les départements de FRANCE et  dans les relations  faire la liaison entre ces deux tables  en ajoutant un champs  ID_Dep par exemple ou le même nom que le champ ID de la table département  dans la table des codes postaux , mais il faut changer le type  NuméroAuto par Numérique dans la table des codes postaux. 

voir  les images suivantes : 

relations entre les tables : 

    Je ne sais pas si je l'ai écris, mais j'ai aussi créé une requête pour faire le tris dans l'ordre croissant sur code_pos ici dans ma table 

      l'image suivante est la même requête , mais en mode SQL (Server Querry Language) 


1
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
19 déc. 2022 à 18:49

Contrairement à ce que tu as écrit le 17 déc. 2022 à 11:47, le champ "Département" de la table "principale" ne contient rien d'utile.

Comme ta base de données n'est pas conforme aux bonnes pratiques, il est assez hasardeux d'y ajouter de nouvelles possibilités.   Pour bien faire, il faudrait commencer par la rendre plus conforme.

1

Bonjour,

Je comprends.

Mais, sache que je ne suis pas compétent pour "moderniser" ou "mettre aux normes" un progiciel qui ne m'est pas dédié.

J'ai comme bon nombre de collègues pris le train en marche (mutation, retraite, etc...) et fait avec les moyens que je disposais.

Je n'ai pas l'autorisation pour faire évoluer ce dernier (même si ça ne ferait pas de mal) !

Je ne suis pas contre des ajustements, mais que cela ne modifie pas intégralement l'intégrité et le fonctionnement de notre application.

J'avais essayé de demander un passage en PhP-MySQL, mais cela a été abandonné ! Dommage, car ce langage est prometteur.

Si tu ne sais pas, peut pas ou autre mettre ce "fameux" numéro de département, cela ne perturbe pas l'utilisation et le bon fonctionnement.

Au plaisir de te lire.

0

Bonjour yg_be.

Mon fichier est très lourd : 27 468 Ko

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
7 déc. 2022 à 12:53

Même après compaction/réparation?

1

Le cadre en bleu au dessus du champ de liste déroulante permet d'afficher le numéro du département en fonction de la communes choisie qui fait référence à une table récapitulative des communes françaises ayant comme champ (Communes, Département, Code Postal)

Je  voudrais que sur un autre formulaire, je puisse (je ne sais pas comment faire) avoir un "cartouche, un champ" qui va chercher dans cette table récapitulative des communes le département et me l'affiche.

Simple dans la théorie, mais dans la pratique, j'ai (#NOM ou #Erreur) d'où ma demande sur le forum.

Merci à toi.

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
7 déc. 2022 à 12:56

Pour commencer, comment est défini le contenu du cadre en bleu?
A quel moment est-il mis à jour?
Comment se fait le choix de la commune?

A quel moment cela serait-il affiché dans l'autre formulaire?  Quel département faudrait-il afficher?

1

Voilà le contenu des propriétés du cadre bleu.

Il est mis à jour lorsque l'autocomplétion de la ville est vérifiée avec la table des communes.

L'affichage dans l'autre formulaire serait alors affiché dès qu'il se rendra sur la fiche pour la compléter.

Cet affichage de département serait les 2 ou 3 premiers chiffres (toujours selon la table des communes).

Je te mets la table dans une autre réponse.

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
7 déc. 2022 à 13:25

Qu'as-tu essayé?
Cela veut dire quoi, "dès qu'il se rendra sur la fiche pour la compléter"?  Comment Access est-il au courant de cela?
Le formulaire d'origine est toujours ouvert à ce moment-là?

Ce serait plus clair si tu nommais tes formulaires.

As-tu essayé de récupérer dans le contrôle bleu du formulaire "fiche" le contenu du contrôle "Département" du formulaire d'origine?

1

C'est le département qu'il faut faire affiché dans ce cadre bleu de l'autre formulaire.

0

Comme sur cet exemple où le numéro du département serait dans le cadre bleu.

0

Qu'as-tu essayé?

J'ai fait un copier-coller du cadre bleu du formulaire indiquant le numéro du département.

----------------------------------
Cela veut dire quoi, "dès qu'il se rendra sur la fiche pour la compléter"?  Comment Access est-il au courant de cela?

Dès que l'on rentre dans le formulaire "Français" et que l'on renseigne la commune, le numéro du département s'affiche.

La partie partenaire ouvre alors son formulaire (qui a des champs communs avec le formulaire français) et y ajoute les informations.

C'est dans ce formulaire que je voudrais mettre le numéro du département.

----------------------------------------------
Le formulaire d'origine est toujours ouvert à ce moment-là?

Non, il ne l'est pas.

--------------------------------------------

Ce serait plus clair si tu nommais tes formulaires.

Oui, mais dans ce cas, il faudrait moderniser et changer de langage de programmation (PhP-MySQL) par ex.

---------------------------------

As-tu essayé de récupérer dans le contrôle bleu du formulaire "fiche" le contenu du contrôle "Département" du formulaire d'origine?

Je pense que c'est dans l'un des messages.

Merci.

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
7 déc. 2022 à 14:23

Oulà, c'est quoi cette partie partenaire?

Appelons donc le premier formulaire "français", et le second "fiche".

Si le formulaire "français" est fermé avant que le formulaire "fiche" s'ouvre, il faudrait donc mémoriser quelque part le numéro du département sur lequel on travaille.

Je pense qu'il y a trop d'éléments que tu n'as pas encore mentionné.

Je crains aussi que tu ne décrives uniquement que ce que tu vois (les formulaires), sans tenir compte d'autres éléments importants.  Tu essaies probablement de corriger un problème ou d'améliorer quelque chose.  Il serait sans doute utile que tu expliques ton objectif réel.

1

Alors, j'ai 2 formulaires.

Un français intitulé "Saisie" sur lequel il y a la liste déroulante et le numéro du département.

Un autre (partenaire) sur lequel je voudrais faire apparaitre le numéro du département saisi dans le formulaire français.

Le département fait parti d'une table nommée communes avec des champs regroupant le numéro du département et le code postal.

Il y a des champs communs entre les 2 formulaires (pas celui du département) et chacun son tour entre des renseignements pour compléter son formulaire.

Est-ce plus clair ?

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
7 déc. 2022 à 16:35

Je ne comprends pas l'enchainement des opérations.

Pourquoi fermer le formulaire "saisie" avant d'ouvrir le formulaire "partenaire"?

Comment cela se passe avec les contrôles communs aux deux formulaires?  On dit "contrôle" pour des zones de formulaires, et "champ" pour les champs des tables.

1
Shimano > yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024
7 déc. 2022 à 16:44

Sinon, ça fait conflit d'écriture !

Et j'ai des #Supprimé ou #Erreur dans les champs de saisie commun.

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477 > Shimano
7 déc. 2022 à 17:42

OK, je ne pense pas pouvoir aider sans avoir le fichier.

1

Bonjour,

Voilà en PJ les diverses captures d'écran

https://www.cjoint.com/c/LLmhGbX21hd

https://www.cjoint.com/c/LLmhGOxhuNd

https://www.cjoint.com/c/LLmhHsm4VhK

https://www.cjoint.com/c/LLmhHSF6A2K

https://www.cjoint.com/c/LLmhNfUSosd

https://www.cjoint.com/c/LLmhNxAxmcK

https://www.cjoint.com/c/LLmhNMAlBFK

https://www.cjoint.com/c/LLmhNZPQZLK

Dans le Formulaire (F Form) il y a le champ du département qui s'affiche selon la commune saisie dans la liste déroulante se rattachant à la table "Communes".
Dans le formulaire (B Form), on peut voir (en haut à droite, dans un cartouche vert la Commune qui s'affiche - en relation avec celle saisie dans le formulaire F Form).

Précision (dans le formulaire B Form, on voir (en bleu un champ "Communes" - c'est un copier-coller du champ "Communes" du formulaire F Form, mais qui ne fonctionne pas) !

Si on peut faire apparaitre le nom de la commune, il devrait être possible de faire afficher à la place le numéro du département ou mieux peut être ajouter à ce champ le numéro du département ou le code postal) à la place d'un autre champ dans ce formulaire ?

J'ai mis les propriétés des 2 "champs" pour y voir plus clair.

Est-ce possible selon vous ?

Merci de vos éclaircissements et aide.
Cordialement.

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
12 déc. 2022 à 10:11

Peux-tu partager ton fichier, et pas des images?

2
Shimano > yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024
12 déc. 2022 à 11:22

Bonjour Yg_Be

Voilà le fichier.

https://www.cjoint.com/c/LLmkvyGByrd

Merci de ton aide.

0

 Je veux bien mais il est très lourd !

30 Mo

0
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477
12 déc. 2022 à 11:38

Tu l'as compacté/réparé avec Access?  

1
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477 > Shimano
12 déc. 2022 à 15:09

Si je comprends bien, tu voudrais voir, dans le formulaire B, le n° du département.
Tu écris "Si on peut faire apparaitre le nom de la commune".  Le nom de la commune est-il visible dans le formulaire B?

1
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477 > yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024
12 déc. 2022 à 15:18

Dans la table "Principale", il y a un champ "Département".  Que contient-il en réalité?

Si possible, pourrais-tu partager un fichier avec des données de test?

1
yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024 1 477 > yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024
12 déc. 2022 à 15:33

Si le champ "Département" de la table "Principale" contient le n° de département, je pense qu'il suffit d'ajouter dans le formulaire B un zone de texte, avec "Département" comme source.

1
Shimano > yg_be Messages postés 22752 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mai 2024
12 déc. 2022 à 18:44

yg_be

Je te fais cela demain.

Si le champ "Département" de la table "Principale" contient le n° de département, je pense qu'il suffit d'ajouter dans le formulaire B un zone de texte, avec "Département" comme source.

J'ai bien essayé, mais j'obtients #NOM? , ou #Erreur?

1