Access : utiliser des éléments d'une liste déroulante sans en rajouter de nouveaux dans la base
-
2011年12月3日 22:16
Bonjour à tous
J'ai une base dont la structure est la suivante :
- 2 tables : Demandes et Categories
- La table Demandes contient une clé étrangère vers la table Catégories (dont la clé primaire est en NumeroAuto)
- La table Categories contient 2 champs : Id (clé primaire) et Libellé
- Cette table Categories est pré-alimentée avec 20 enregistrements
- Le champ Libellé de la table Categories est configuré comme liste déroulanteDans mon formulaire, j'ajoute divers champs de la table Demandes, ainsi que la liste déroulante correspondants aux 20 libellés de la table Categories.
Le souci est le suivant : je choisis une catégorie via la liste déroulante, et lorsque je valide mon formulaire, Access m'a rajouté une ligne dans la table Categories correspondant à la catégorie que j'ai choisi dans la liste déroulante. Or moi, je voulais juste qu'il ajoute la clé primaire de cette catégorie dans la colonne de la table Demandes représentant la clé étrangère de la table Categories (ce qu'il fait, mais avec la clé primaire de la nouvelle catégorie, pas avec celle de l'existante).
Y'a t'il un moyen d'obtenir ce comportement autrement qu'en écrivant ma requête SQL d'insertion dans la table Demandes moi même ?
Merci par avance
edit: je précise que je viens de SQL Server, donc je connais bien l'univers des bases de données. Je me met à Access pour ... "rendre service", et je dois dire que certains de ses comportements me déroutent un peu.
全部回复
-
2011年12月7日 13:32
Bonjour Harkonnen
Je ne comprends pas trop ce comportement. La source de données de votre formulaire est bien la table "Demandes" ?
La source de la liste déroulante doit avoir comme champ la clé étrangère et comme source de données la table "Categories".
Pour faciliter le passage de SQL Server vers Access, oubliez le "T" du TSQL et la notion de Server ;-)) J'ai dû faire une fois l'inverse, et j'ai pas rigolé.
Cdt,
Blaise
-
2011年12月10日 16:36
Bonjour Blaise
En fait, j'ai résolu mon souci : il fallait que ma liste déroulante comporte 2 colonnes : l'id et le libellé, avec l'id en colonne masquée (largeur : 0cm). La colonne liée est également l'id.
De cette façon, la liste déroulante me propose bien le libellé, mais inscrit l'id dans la base.
Merci pour votre réponse :)
- 已建议为答案 latisane 2011年12月10日 19:52
- 已标记为答案 Ciprian DuduialaOwner 2012年1月12日 7:22
-
2011年12月10日 19:56
Bonjour Harkonnen,
En fait j'ai besoin d'enregistrer dans la table T(id et le libellé) le libellé de la liste déroulante
Merci de votre réponse,
Christophe
-
2011年12月12日 17:43
Bonjour Harkonnen,
Vu ton expérience en BDR, cela me semblait assez évident pour ne pas te faire une offense. Mais comme tu as résolu le blème par toi même, tu mérites un +1
Bien à toi,
Blaise<Harkonnen> a écrit dans le message de news: 737690ae-99b6-41b2-9def-cc9d2e2da20b@communitybridge.codeplex.com...
Bonjour Blaise
En fait, j'ai résolu mon souci : il fallait que ma liste déroulante comporte 2 colonnes : l'id et le libellé, avec l'id en colonne masquée (largeur : 0cm). La colonne liée est également l'id.
De cette façon, la liste déroulante me propose bien le libellé, mais inscrit l'id dans la base.
Merci pour votre réponse :)

