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

WinDev Discussion :

mise à jour d'une fenetre apres selection dans une combo


Sujet :

WinDev

  1. #1
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut mise à jour d'une fenetre apres selection dans une combo
    Bonjour,

    J'ai une fenetre tres classique avec à l'intérieur des champs relié à une requete pour que les données de mon fichier "membres" soit par ordre alphabétique

    Je voudrais faire une combo pour sélectionner un membres et qu'il soit afficher dans ma fenêtre.

    j'ai donc créé une combo et j'ai affecté ce code sur l'évènement sélection d'une ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    HExécuteRequête("Membres alpha")
    SAI_Saisie1=COMBO_Membres_alpha // juste pour voir si ma combo fonctionne
    HLitRecherchepremier("Membres alpha",IDMembres,COMBO_Membres_alpha)
    FichierVersEcran(Frères,"Membres alpha")
    le résultat: Je peux sélectionner un nom dans ma combo, la valeur idmembres est bien affiche dans mon champ de verif,
    mais la fiche ne correspond à rien (idmembres = 0) et si je veux changer à nouveau de nom j'ai un message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "il n'existe pas de rubrique<0> dans le fichier <Membres alpha>"
    merci de votre aide

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Après ta requete tu dois faire HLitPremier() pas HLitRecherchePremier() puisque ta requete à fait la recherche

  3. #3
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    j'ai essayé ta solution en remplaçant hrecherchepremier par hlitpremier mais ça ne fonctionne pas.

    Ma requete ici ne me permet que d'afficher les nom par oredre alphabétique, elle ne fait pas de tri

    Je suis pas sur d'avoir bien compris

  4. #4
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Pourquoi ne pas passer IDMembre (valeur du combo) en parametre à ta requete
    en suite un hlitpremier de donnera surement l'enregistrement qui t'interesse

  5. #5
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    pourquoi pas mais comment fait on, je débute en windev et ne suis pas du tout à l'aise avec le code !!

    voila ce que j'ai pour le moment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    HExécuteRequête("Membres alpha")
    SAI_Saisie1=COMBO_Membres_alpha
    HLitRecherchePremier("Membres alpha",IDMembres,COMBO_Membres_alpha)
    FichierVersEcran(Frères,"Membres alpha")
    j'ai essayé ça en m'aidant de l'aide de windev mais sans succé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    "Membres alpha".IDMembres=COMBO_Membres_alpha
    HExécuteRequête("Membres alpha",hModifieFichier)
     
    SAI_Saisie1=COMBO_Membres_alpha
    HLitPremier("Membres alpha")
    FichierVersEcran(Frères,"Membres alpha")

    je n'ai plus d'erreur mais aucun effet non plus....
    merci de ton aide

  6. #6
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    Je suis vraiment désolé mais je n'y arrive pas. Pourtant changer le contenue d'une fenetre avec une combo fait parti du b-a ba......

    J'aimerais bien un petit coup de main SVP

    j'ai édité ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    HExécuteRequête("Membres alpha",hAvecFiltre,COMBO_Membres_alpha)
    HLitPremier("Membres alpha",IDMembres)
    FichierVersEcran
    SAI_Saisie1=COMBO_Membres_alpha
    qui devrait me permetre d'exécuter une requete (sur laquelle est basée ma fenêtre) avec le passage d'un paramètre (ici la valeur de combo_membres_alpha qui retourne la valeur IDmembres)

    donc logiquement dans ma requete je ne devrais avoir plus qu'un seul membre de visible

    donc je demande de lire cette ligne puis de la mettre à jour sur ma fenêtre.

    Y a t'il quelque chose qui vous semble bizare???

    le résultat de mon code:
    Apres action sur ma combo, ma fenetre ce met à jour tout le temps avec le meme membre qui correspond au premier de la liste en prenant en compte IDmembres (ne correspond pas au premier par ordre alphabétique)

    A priori je pense que ça veut dire que le parammetre n'est pas prise en compte dans ma requete.....

    En fait j'en sais plus trop rien je suis un peu perdu....
    merci pour votre aide

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    C'est un peu difficile de t'aider car ton projet est complexe et nous n'avons pas tous les éléments.

    Je te conseille les debugages suivants :
    • passer une valeur "en dur" à ta requete, pour vérfier qu'elle fonctionne correctement
    • récupérer la combo dans une variable, pour vérifier que ce que tu récupères de la combo est bien ce à quoi tu t'attends
    • passer la variable à ta requete, pour vérfier qu'elle fonctionne avec un paramètre "variable"


    Je n'ai toujours pas compris à quoi sert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SAI_Saisie1=COMBO_Membres_alpha
    Si tu veux vérifier la valeur renvoyée par la combo utilise :
    Trace() non bloquant
    ou Info() bloquant
    Attention :
    Info(MaCombo) renvoie l'indice sélectionné dans la combo
    Info(MaCombo[MaCombo]) renvoie la valeur de l'indice sélectionné dans la combo

  8. #8
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    ne connaissant pas encore "trace" j'utilisais ce code pour mettre la valeur de ma combo dans un champ pour vérifier si la valeur de ma combo était la bonne.

    La valeur est bien celle attendue

    je ne comprends pas vraimment:
    Attention :
    Info(MaCombo) renvoie l'indice sélectionné dans la combo
    Info(MaCombo[MaCombo]) renvoie la valeur de l'indice sélectionné dans la combo
    quelle est la différence entre l'indice et la valeur de l'indice?

    La valeur que je veux récupérer est la clé primaire de mon enregistrement IDMembres. Mais apparemment j'y arrive.

    Reste le probleme de la requete:


    La requete avec laquelle je charge ma fenetre n'a pas de paramètre, elle me sert uniquement à classer les membres par ordre alphabétique.

    Je me demande si je n'aurais pas besoin d'une autre requete qui en plus de les classer par ordre alpha puisse aussi prendre un paramétre en compte comme Idmembres.

    Si mon raisonnement est bon il faut donc que je charge ma fenetre avec une requete
    que ma combo prenne une valeur quand je selectionne un nom
    que cette valeur soit passée en paramètre dans une autre requetes
    et qu'enfin je recharge ma fenetre avec la ligne issu de la derniere requete.

    Tout cela me semble un peu compliqué.

    PS pour Gardian:
    ce post n'a rien a voir avec le premier.
    Mon but c'est d'avoir une fenetre qui affiche les information du fichier membre.
    J'ai les boutons suivant et précédent qui me permettent de naviguer dans le fichier.
    Je voudrais pourvoir sélectionner dans la combo le membre à afficher....

    Merci encore de ton aide.

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Citation Envoyé par mnssylvain Voir le message
    quelle est la différence entre l'indice et la valeur de l'indice?
    Si tu as une cobo avec :
    chien
    chat
    cheval
    Tu sélectionnes la ligne chat.
    Info(MaCombo) retourne "2"
    Info(MaCombo[MaCombo]) retourne "chat"

  10. #10
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    D'accord.

    donc moi ce qui m'intéresse c'est de récupérer le 2
    (ca je sais faire)

    et obtenir les informations correspondantes dans la fenetre
    voir cette fenetre pour mieux comprendre

    Je veux donc avoir les info d'un autre membre en le selectionnant dans la combo


    et merci encore de passe du temps avec un débutant comme moi....
    Images attachées Images attachées  

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Citation Envoyé par mnssylvain Voir le message
    ce qui m'intéresse c'est de récupérer le 2
    Je ne crois pas non

    Donne-moi la structure de ton fichier "membres" stp

  12. #12
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    voici le contenu de mon fichier membres

    Membres:
    IDEtat
    IDMembres
    nommembres
    Prénommembres
    Datedenaissance
    etc.... d'autre info comme adresse..... sans plus d'importance pour mon problème.


    Apres je passe par une requete pour l'avoir dans l'ordre alphabétique (ce n'est peu etre pas obligatoire il y a surement mieux....mais je ne sais pas encore faire)

    j'ai besoin de récupérer IDmembres puisque c'est la clé unique qui me permet d'identifier mon enregistrement

    précision sous access un enregistrement est une ligne du fichier.... je ne suis pas sur que c'est comme cela que l'on dit dans windev.

    Apres quelques recherche dans l'aide dans windev l'indice correspond au n° de la ligne (qui peut contenir des informations différentes selon les cas...)
    Ce n'est pas cela que je veux mais le contenu de la rubrique IDmembres....
    Mais je le repète ça je sais le faire... c'est la suite qui me pose pb.

    Comment obtenir dans ma fenetre les renseignements concernant un enregistrement....

    merci encore de ta patience...

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Si j'ai bien compris tu considères que la valeur de la ligne sélectionnée dans ta combo correspond à l'IDMembres ?
    Mais quelle serait la relation entre la combo et le fichiers ?

  14. #14
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    La combo me permet de selectionner l'idmembre que je recherche (elle affiche le nom du membre mais retient l'Idmembre)

    el le code sur selectionner une ligne doit me permettre de retrouver le membre ayant l'idmembre selectionné et l'afficher.

    Dans access c'est de cette façon que les fichiers sont relier et d'ailleurs dans l'analyse de windev aussi. C'est pour cela que j'essaie de faire commeça.

    Mais si dans windew on ne fonctionne pas de la meme façon je veux bien changer de raisonnement.
    Mon but est d'obtenir la fenetre mise en pice jointe un peu plus haut peu importe la façon d'y arriver.....
    merci encore

  15. #15
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    grace à la commande trace que tu m'as apprise j'ai tester mon code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HExécuteRequête(membresalpha1)
    membresalpha1.Param1=COMBO_Membres_alpha
    HExécuteRequête(membresalpha1)
    HLitPremier(membresalpha1,IDMembres)
    Trace(membresalpha1.IDMembres,membresalpha1.Nommembre)
    FichierVersEcran
    La fenetre Trace me renvoie bien le membre sélectionné....

    Il y aurait un probleme juste pour renvoyer les infos de ma requete dans ma fenetre....

    MAis ce dans le cas présenté, je m'appuie sur 2 requete une pour remplir la fenetre et une autre pour faire la selection du membre.
    Ca veux dire je pense que je ne peux plus utiliser les bouton de navigation (suivant précédant) à moins de rajouter du code pour recharcher ma fenetre avec la premiere requete puis de me déplacer dans le fichier jusqu'au memebre actuellement sélectionné....

    Ca me semble compliquer.
    Autre idée:
    Est ce qu'au lieu de sélectionner le membre dans une requete, il ne serait pas plus intéressant de se déplacer dans le fichier jusqu'au membre sélectionné....
    Je vais chercher dans cette voie.....en attendant ton avis.
    merci encore

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Au lieu d'utiliser FichierVersEcran, tu peux faire une affectation manuelle, en reprenant ton tout premier code tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    HExécuteRequête("Membres alpha")
    SAI_Saisie1=COMBO_Membres_alpha // juste pour voir si ma combo fonctionne
    HLitRecherchepremier("Membres alpha",IDMembres,COMBO_Membres_alpha)
    SI HTrouve("Membres alpha") ALORS
    SAI_Nom = Membre alpha.nommembre
    SAI_Prenom = Membre alpha.prenomembre
    etc
    FIN
    en reprenant les bons noms de champs, par contre il n'est pas très conseillé d'utiliser des espaces dans les nom des objets, si rien ne fonctionne essaye de renommer tes objets sans les espaces.

    A+

  17. #17
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    FichierVersEcran() ne fonctionne que si tous les champs sont liés au fichier ce qui me semble peu probable ici.
    Donc, en effet, une affectation manuelle des valeurs aux champs devrait fonctionner.

  18. #18
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    merci pour vos réponse mais je n'y arrive toujours pas.

    Le code revu et corrigé par Basam95 à pour effet de chager les nom qui apparaissent dans la combo mais ne met pas du tout à jour les champs.

    J'ai un peu bossé sur mon idée de ce matin
    Autre idée:
    Est ce qu'au lieu de sélectionner le membre dans une requete, il ne serait pas plus intéressant de se déplacer dans le fichier jusqu'au membre sélectionné....
    et voici ce que j'ai pour le moment:
    quand je selectionne un nom dans ma combo ce code me permet de me déplacer jusqu'à l'enregistrement n°3 et me met bien à jour tous mes champs...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HLit("Membres alpha",3)
    FichierVersEcran
    Il faudrait donc qu'en selectionnant le nom de mon membre la combo me renvoie le n° de l'enregistrement dans le fichier afin d'y accéder par le code ci-dessus...

    Qu'en pensez-vous? cela me semble plus simple... sauf que je ne sais pas récupérer le n° d'enregistrement...... mais bon vous allez m'aidez hein??

    merci beaucoup pour votre aide

  19. #19
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Mais pourquoi ne recherches-tu pas sur le nom puisque c'est le nom qui est affiché dans la combo ?

    J'ai un programme de test avec une BdB d'un fichier "Client" avec : Nom, Prénom, Date
    J'ai une combo avec les noms (combo simple avec une liaison avec la rubrique Nom du fichier)
    Je choisi un Nom dans la combo
    Dans le code de sélection de ligne de la combo j'ai simplement HLit(MonFichier,MaCombo)
    Et la fiche correspondante au nom choisi est lue
    et je remplis mes champs avec Champ.Nom=MonFichier.Nom

  20. #20
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    en fait il se pourrait bien que 2 personnes portent le même nom c'est pour cela que je souhaite le faire sur le n°d'enregistrement.
    Mais si on peut le faire sur le nom on peut aussi bien le faire sur ma rubrique IDMembre??????

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/01/2011, 18h40
  2. Réponses: 1
    Dernier message: 26/12/2010, 22h20
  3. Réponses: 3
    Dernier message: 05/02/2010, 04h45
  4. copier une cellule d'une à une autre après selection dans combobox
    Par fripoti dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/07/2008, 15h23
  5. Mise à jour d'une variable après choix dans une combobox
    Par ~Brouette~ dans le forum Langage
    Réponses: 1
    Dernier message: 21/12/2007, 12h09

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