IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Requete dans source contrôle d'un formulaire


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Requete dans source contrôle d'un formulaire
    Bonjour,
    J'apprends à utiliser ACCESS et j’essaie de faire une requête pour qu'un contrôle affiche une valeur sélectionnée par une requête.
    En l'occurrence j'ai une table T_Adherent qui contient entre autre les champs suivants : NomAdherent et CodeAdherent (clé primaire).
    J'ai une liste dans mon formulaire qui contient les noms des adhérents
    dans la case source contrôle d'une zone texte si je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[Formulaire]![Liste23]
    J'obtiens le CodeAdherent de l'adhérent sélectionné dans la liste (Liste23 étant le nom de la liste).
    dans ce même contrôle je voudrais afficher le code de l'adhérent mais en passant par une requête SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    =(SELECT T_Adherent.CodeAdherent 
    FROM T_Adherent 
    WHERE T_Adherent.CodeAdherent= [Formulaire]![Liste23])
    Je n'obtiens que #NOM ? dans le contrôle en question. J'ai essayé pleins de syntaxe différentes mais toujours rien.
    Le but étant de réussir à récupérer une valeur dans une table grâce à une requête entrée dans le générateur d'expression.
    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    =(SELECT T_Adherent.CodeAdherent 
    FROM T_Adherent 
    WHERE T_Adherent.NomAdherent = "WESTBURY")
    Où WESTBURY est un des noms présent dans une entrée de la table en question.

    J'ai trouvé ça https://support.office.com/fr-fr/art...b-8b6ec5aed41f
    et j'ai essayé de mettre le nom de la table et des champs entre crochets (voir code suivant) mais rien n'y fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    =(SELECT [T_Adherent].[CodeAdherent] 
    FROM [T_Adherent] 
    WHERE [T_Adherent].[NomAdherent] = "WESTBURY")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    =(SELECT [T_Adherent]![CodeAdherent] 
    FROM [T_Adherent] 
    WHERE [T_Adherent]![NomAdherent] = "WESTBURY")

    Si quelqu'un à une idée pour m'orienter car je sèche un peu, je débute sur ACCESS et je ne trouve rien de bien spécifique sur le sujet malgré mes recherches sur internet.


    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Autant que je sache on ne peut pas mettre du SQL comme source d'un contrôle.
    On peut mettre du SQL comme source d'un formulaire.

    Par contre ce que tu peux faire c'est mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[Formulaire]![Liste23].Column(1) 'Suppose que ta liste a au moins 2 colonnes. Les colonnes sont numérotés à partir de 0.
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DFirst("CodeAdherent"; "T_Adherent"; "[NomAdherent]=""WESTBURY""")
    En passant :
    • je t t'invite à donner un nom plus significatif à tes contrôles. Liste23, cela ne dit pas grand chose. Quelque chose comme ListeAdherent ou ListeNomAdherent serait plus parlant.
      Cela facilite la compréhension de ton application et rend la maintenance plus facile.
    • Utiliser le nom pour identifier une personne peut être sujet à problème car plusieurs personnes différentes peuvent avoir le même nom.
      On préférera utiliser un numéro unique de personne (ce peut être un simple numéro séquentiel).


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Janvier 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour et merci pour ta réponse si rapide !
    Ok je vois je me renseigne sur la fonction dfirst en tout cas ça fonctionne comme je veux de cette façon.
    En ce qui concerne les nom des contrôle et autres ne t'en fait pas c'était juste pour le test (j'avoue que le nom n'est pas du tout évocateur )
    Pour l’identification d'une personne par son nom j'ai aussi conscience des problèmes que cela peut poser mais je cherche à améliorer mes compétences ACCESS.

    Je te remercie beaucoup pour la rapidité de ta réponse (j'aurais du venir demander avant) !

    En revanche, pourquoi faut-il mettre les double guillemets ""WESTBURY"" ?
    EDIT non c'est bon j'ai compris la réponse à ma question ...

Discussions similaires

  1. [AC-2013] Source contrôle d'un formulaire = champ table lié à la source
    Par Mielanie dans le forum IHM
    Réponses: 28
    Dernier message: 23/10/2013, 17h06
  2. [AC-2003] Calculs dans les contrôles ou dans la source du formulaire
    Par buzz73 dans le forum IHM
    Réponses: 2
    Dernier message: 31/08/2009, 14h17
  3. [AC-2003] Recuperation d'un champs d'une requete dans un champs d'un formulaire
    Par TheRRb dans le forum VBA Access
    Réponses: 6
    Dernier message: 13/07/2009, 13h42
  4. Réponses: 4
    Dernier message: 19/04/2009, 13h44
  5. Réponses: 16
    Dernier message: 27/10/2006, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo