Access : utiliser des éléments d'une liste déroulante sans en rajouter de nouveaux dans la base

已答覆 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éroulante

    Dans 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.



    • 已编辑 Harkonnen 2011年12月3日 22:18
    • 已编辑 Harkonnen 2011年12月3日 22:18
    •  

全部回复

  • 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 :)

     

  • 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 :)