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

IHM Discussion :

Record non affiché dans liste déroulante si champs vide [AC-2010]


Sujet :

IHM

  1. #21
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Re,
    Regardez le Contenu de la liste déroulante Recherche du formBB, ajoutez autant de RechDom() qu'il y a de champs à visualiser dans la liste. Ça risque de faire pas mal de colonnes toutefois.
    Si cette manip consisterait à visualiser les valeurs de vos contrôles dépendants de vos différents ID qui sont nuls (non renseigné au moment de la création d'un nouvel enregistrement dans T_Prestation (ma tblB), alors aucun intérêt, car ces contrôles seront forcément nuls.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  2. #22
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut
    certains contrôles sont nuls oui, mais pas tous (heureusement) !!! Je dirais que la moitié est vide (systématiquement au début de la saisie), et donc on s'appuie sur ceux qui ne sont pas vides pour les différencier (il peut y avoir des doublons dans les champs non vides).
    pourquoi afficher ceux qui sont vides ?
    car ce formulaire va servir aussi dans d'autres cas où on aura besoin que ces infos soient affichées (je n'ai pas envie de refaire un autre formulaire - si possible...)

    merci pour votre aide, je regarde ça dès que possible !

    cordt

  3. #23
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut


    j'ai exactement ce que je souhaitais...

    et sans vos explications, je n'y serais pas arrivé (ou p-e dans 3 mois...) !

    bien cordt

  4. #24
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut pourquoi tant de haine?...
    bonsoir,

    je reviens sur ce post car j'essaie de reproduire le fonctionnement avec 2 autres tables et cela ne marche pas...

    contexte :
    je cherche à afficher dans une liste déroulante des champs de la table T_Cores-AO, même si le champs ID_Prestation_Fait_générateur est vide
    ci-dessous la description du record 900 de la table où on voit que la colonne ID_Prestation_Fait_générateur est vide :
    Nom : Capture-cores 900.jpg
Affichages : 92
Taille : 72,7 Ko

    NOTA : le record 900 a la même date de création "7/8/2018" que le 902

    ci-dessous la fenêtre "générateur de requêtes" :
    Nom : Capture-relation entre tables cores et prestation.jpg
Affichages : 91
Taille : 151,2 Ko

    NOTA : l'affichage de la liste déroulante est triée sur la date de création

    avec la formule que j'ai insérée en dernière colonne, en me basant sur ce que j'ai compris à partir de ce qui a été échangé dans ce post :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CUID_Prestation: VraiFaux(EstNull([ID_Prestation_Fait_générateur]);"";RechDom("[CUID_Prestation]";"[T_Prestation]";"[ID_Prestation]=" & [ID_Prestation_Fait_générateur]))
    voici mon formulaire où on voit que l'ID 900 n'est pas affiché dans la 1ere colonne :
    Nom : Capture-pas 900.jpg
Affichages : 92
Taille : 178,0 Ko

    NOTA : on voit que le 902 est affiché

    bref, où est mon erreur ???

    NOTA : j'ai supprimé la table T_Personne dans le générateur de requêtes (en attendant de résoudre le pb), mais cela ne change rien.

    cordt

  5. #25
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    je cherche à afficher dans une liste déroulante des champs de la table T_Cores-AO, même si le champs ID_Prestation_Fait_générateur est vide
    oui, mais dans ce cas, soit il faut enlever la jointure avec la table T_Prestation ou faire une jointure gauche (tous les enregistrements de T_Cores-40 et seulement ceux de T_Prestation pour lesquels les champs joints sont égaux).
    Mais je pense que la table T_Prestation peut être enlevée puisque tu n'affiches aucun champ de cette table.
    avec la formule que j'ai insérée en dernière colonne, en me basant sur ce que j'ai compris à partir de ce qui a été échangé dans ce post :
    aucun intérêt si le champ est vide tu ne trouveras jamais de correspondance.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #26
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut
    bonjour,

    OK MEA CULPA : si je ne garde que la tbl T_CORES-AO (comme dans la solution donnée par Hyperion13 le 8/8), alors ça marche !

    MAIS : je voudrais pousser un peu + loin, c-a-d que (cf. ma capture d'écran de la fenêtre 'générateur de requêtes') je voudrais récupérer les nom/prénom - s'ils existent - des personnes concernées, et non leur CUID (le 904 par ex) :

    Nom : Capture-cores904.jpg
Affichages : 74
Taille : 160,5 Ko

    --> est-ce possible ???

    j'ai regardé la relation entre CUID_Prestation de T_Prestation et Nom_Personne de T_Personne, ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT T_Prestation.CUID_Prestation, T_Personne.Nom_Personne FROM T_Personne INNER JOIN T_Prestation ON T_Personne.CUID_Personne = T_Prestation.CUID_Prestation;
    mais je ne vois pas comment insérer ça dans la formule "VraiFaux..."

    cordt

  7. #27
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut,
    A priori, le résultat de la liste déroulante que tu présentes dans ta capture d'écran post#26 est celui attendu. Sauf que tu veux remplacer le CUID par nom et prénom de la personne.
    Le plus simple à on avis :
    - créer une 1ère requête "en dur" telle que présentée dans ton post#24 avec seulement la tbl T_CORES_AO (voir réponse de tee_grandbois en post#25)
    - dans le générateur de requête de ta liste, tu appelles cette requête, tu insères tous les champs et tu calcules avec RechDom() nom & prénom de la personne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Personne: VraiFaux(EstNull([CUID_Prestation]);"";RechDom("[Nom_personne] & [Prénom_personne]";"[T_Personne]";"[CUID_Personne] = '" & Me.CUID_Prestation & "'"))
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  8. #28
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut
    bonjour Hyperion13,

    Citation Envoyé par hyperion13 Voir le message
    Salut,
    A priori, le résultat de la liste déroulante que tu présentes dans ta capture d'écran post#26 est celui attendu. Sauf que tu veux remplacer le CUID par nom et prénom de la personne.
    tout à fait !

    Le plus simple à on avis :
    pour vous - mais pour moi c'est une autre affaire...

    - créer une 1ère requête "en dur" telle que présentée dans ton post#24 avec seulement la tbl T_CORES_AO (voir réponse de tee_grandbois en post#25)
    j'ai relu 5 fois pour essayer de bien comprendre la différence par rapport à ce que j'ai déjà fait, et j'en arrive à cette question : "je dois en faire une requête standard qu'on voit dans la liste de requêtes (bandeau de gauche de la fenêtre principale) ?"
    si oui, comment on fait une requête "en dur" ?
    - je fais "création de requête"
    - je prends T_Cores-AO
    - je colle la requête du #24 dans la 1ère colonne
    ?

    - dans le générateur de requête de ta liste, tu appelles cette requête,
    euh... désolé, je ne sais pas faire...
    j'ai cherché sur la toile et sur DVP sans succès (bcp de sujets sur des requêtes en VBA - ce dont il n'est pas question ici)

    tu insères tous les champs
    de la table T_Cores-AO ?
    dans les colonnes du bas ? Est-ce nécessaire vu que ce n'est pas ce que je souhaite afficher ?
    A moins que ce ne soit la tbl T_Personne ???

    et tu calcules avec RechDom() nom & prénom de la personne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Personne: VraiFaux(EstNull([CUID_Prestation]);"";RechDom("[Nom_personne] & [Prénom_personne]";"[T_Personne]";"[CUID_Personne] = '" & Me.CUID_Prestation & "'"))
    ...dans la dernière colonne (du générateur de requêtes) ?

    cordt

  9. #29
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    RE,
    La liste déroulante en post#26 est le résultat attendu, avant la modif nom & prénom de la personne.
    Donc si je ne me plante pas, la syntaxe est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [T_CORES-AO].[ID_CORES-AO], [T_CORES-AO].ID_CORES_Excel, [T_CORES-AO].Statut_AO_CORES, [T_CORES-AO].Date_Dde_CORES, [T_CORES-AO].Nature_fait_générateur, IIf(IsNull([ID_Prestation_Fait_générateur]),"",DLookUp("[CUID_Prestation]","[T_Prestation]","[ID_Prestation]=" & [ID_Prestation_Fait_générateur])) AS CUID_Prestation
    FROM [T_CORES-AO]
    WHERE ((([T_CORES-AO].Date_Dde_CORES)<>#12/30/1899#))
    ORDER BY [T_CORES-AO].Date_Dde_CORES DESC;
    La req ci-dessus tu la copies/colles dans une req "en dur" que tu nommes à ta discrétion. Pour ma part et pour exemple R_CORES-AO
    Tu utilises ensuite cette req créée pour alimenter le générateur de requête de ta liste déroulante. Comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [R_CORES-AO].[ID_CORES-AO], [R_CORES-AO].ID_CORES_Excel, [R_CORES-AO].Statut_AO_CORES, [R_CORES-AO].Date_Dde_CORES, [R_CORES-AO].Nature_fait_générateur, IIf(IsNull([CUID_Prestation]),"",DLookUp("[Nom_personne] & [Prénom_personne]","[T_Personne]","[CUID_Personne] = '" & [CUID_Prestation] & "'")) AS Personne
    FROM [R_CORES-AO];

    EDIT : Ou alors, cette unique syntaxe en tenant compte de la réponse de tee_grandbois (post#25)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [T_CORES-AO].[ID_CORES-AO], [T_CORES-AO].ID_CORES_Excel, [T_CORES-AO].Statut_AO_CORES, [T_CORES-AO].Date_Dde_CORES, [T_CORES-AO].Nature_fait_générateur, IIf(IsNull([CUID_Prestation]),"",DLookUp("[Nom_personne] & [Prénom_personne]","[T_Personne]","[CUID_Personne] = '" & [CUID_Prestation] & "'")) AS Personne
    FROM T_Prestation RIGHT JOIN [T_CORES-AO] ON T_Prestation.ID_Prestation = [T_CORES-AO].ID_Prestation_fait_générateur
    WHERE ((([T_CORES-AO].Date_Dde_CORES)<>#12/30/1899#))
    ORDER BY [T_CORES-AO].Date_Dde_CORES DESC;
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  10. #30
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut
    bonjour,

    BRAVO à vous 2 !!!

    avec qq petites corrections & adaptations, cela fonctionne comme je le souhaitais !!!

    requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [T_CORES-AO].ID_CORES_AO, [T_CORES-AO].ID_CORES_Excel, [T_CORES-AO].Statut_AO_CORES, [T_CORES-AO].Date_Dde_CORES, [T_CORES-AO].Nature_Fait_générateur_CORES, IIf(IsNull([CUID_Prestation]),"",DLookUp("[Nom_Personne] & "" "" & [Prénom_Personne]","[T_Personne]","[CUID_Personne] = '" & [CUID_Prestation] & "'")) AS Personne
    FROM T_Prestation RIGHT JOIN [T_CORES-AO] ON T_Prestation.ID_Prestation = [T_CORES-AO].ID_Prestation_Fait_générateur
    WHERE ((([T_CORES-AO].Date_Dde_CORES)<>#12/30/1899#))
    ORDER BY [T_CORES-AO].Date_Dde_CORES DESC;
    (il y avait des [ autour de certains champs, un champ était incomplet, et j'ai ajouté un espace entre les nom & prénom - mais BRAVO qd même pour avoir donné la solution !!!)

    j'ai compris uniquement ce matin qu'il fallait que je me mette en mode SQL pour écrire la requête "en dur"...
    ...et la solution en 1 seule requête m'a bien soulagé la tâche !!!

    bien cordt

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 8
    Dernier message: 31/05/2018, 12h55
  2. liste non reconnu dans liste déroulante
    Par Ragus1970 dans le forum Général Python
    Réponses: 3
    Dernier message: 11/04/2018, 17h08
  3. [Flex4] Valeur non incluse dans listes déroulantes
    Par granchef dans le forum Flex
    Réponses: 3
    Dernier message: 06/07/2013, 17h08
  4. Champ type de contenu non affiché dans les listes en création
    Par lflorca dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 23/10/2012, 10h54
  5. mettre par défaut un champ dans liste déroulante
    Par zouzou1010 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/05/2006, 14h12

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