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 :

rechercher des infos dans un fichier et les afficher dans une table [WD20]


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut rechercher des infos dans un fichier et les afficher dans une table
    bonsoir chers tous.
    j'ai un fichier Elève et un fichier Inscription qui reçois la clé primaire du fichier Elève. J'ai aussi une TABLE_Elève avec COL_Matricule , COL_Nom, COL_Prénom et une COL_Statut_inscription
    je souhaiterai rechercher les matricules présents dans la TABLE_Elève dans le fichier Inscription. si les matricules sont trouvés alors dans la TABLE_Elève.COL_Statut_inscription en face des matricules trouvé soit inscrit "Inscrit(e)" et pour les matricules non trouvés "Non-Inscrit".
    J'ai utilisé ce code dans l'affichage d'une ligne de TABLE_Elève.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	POUR TOUTE LIGNE DE TABLE_Elève
    	HLitRecherche(Inscription,Matricule,TABLE_Elève.COL_Matricule)
    	SI HTrouve(Inscription) ALORS
    		TABLE_Elève.COL_Situation_Inscription="Inscrit(e)"
     
    	SINON
     
    			TABLE_Elève.COL_Situation_Inscription="Non-Inscrit(e)"
     
    		FIN
     
    		FIN
    Mais ça ne marche pas.
    Que dois-je faire?

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Il faut réfléchir.
    Il faut essayer de comprendre ce que tu fais. Tant que tu taperas des trucs au hasard, tu n'arriveras à rien.

    Ici , je te suggère ce changement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    POUR TOUTE LIGNE DE TABLE_Elève
            Trace ( heuresys() + " vérification " + TABLE_Elève.COL_Matricule) 
    	HLitRecherche(Inscription,Matricule,TABLE_Elève.COL_Matricule)
    	SI HTrouve(Inscription) ALORS
    		TABLE_Elève.COL_Situation_Inscription="Inscrit(e)"
     
    	SINON
     
    			TABLE_Elève.COL_Situation_Inscription="Non-Inscrit(e)"
     
    		FIN
     
    		FIN
    Ca ne va rien changer. Une ligne Trace ajoutée , ça va juste afficher des informations dans une fenêtre jaune.
    Regarde en détail ce qui s'affiche, tu devrais découvrir une de tes erreurs. Tu vas peutêtre comprendre ce que tu fais.

    En plus, tout petit détail.
    Un programmeur appliqué, il fait en sorte que son code soit correctement indenté.
    Un code correctement indenté, ça aide à lire, ça aide à réfléchir. Un code écrit n'importe comment, comme le tien, ça n'aide pas à voir ce qui se passe.
    Recherche le mot 'indentation' dans l'aide.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    voici la fenêtre qui s'affiche
    Nom : Capture10.PNG
Affichages : 316
Taille : 28,1 Ko
    Que dois-je comprendre?

    Petite précision, les Fichiers Elève et Inscription son lié par le matricule.

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Regarde ...
    tu as 6 élèves, et tu as combien de lignes affichées ici ?
    Est-ce que c'est normal ?
    Que se passe-t-il ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Il y a 32 ligne. Je constate que les mêmes matricules sont répétés plusieurs fois, ce qui n'est pas normal.
    Que dois-je faire?

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    32 lignes ?
    Recompte, ce n'est pas ça.
    Pourquoi il y aurait 32 lignes pour 6 élèves ... trop bizarre.
    Quand tu auras compté le nombre de lignes correctement, tu vas peut-être constater une coïncidence. Et du coup tu vas peut-être comprendre ce que tu fais.
    Parce que c'est TOI qui dis au programme de faire tout ça. Le programme obéit à ce que tu lui demandes, et tu lui demandes de faire plein de choses plein de fois. Pour rien
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    peut-être que je ne me fais pas bien comprendre.
    Voici mon analyse Nom : analyse.PNG
Affichages : 283
Taille : 21,8 Ko
    et voici mes tables Nom : tableElève.PNG
Affichages : 292
Taille : 60,2 KoNom : TableInscription.PNG
Affichages : 276
Taille : 48,7 Ko
    Tout ce que je veux, c'est qu'une recherche de tous les matricules présents dans la table élève se fasse dans le fichier inscription et pour tout matricule retrouvé, qu'il soit inscrit "Inscrit(e)"dans la col_situation_inscrition de la table Inscription en face de chaque matricule retrouvé et Non-Inscrit(e) pour les matricules non retrouvés.
    Quelqu'un peut-il me dire simplement que dois-je ajouter retrancher à mon code ou quel code utiliser pour me permettre d'atteindre le résultat recherché?
    SVP je galère depuis.

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Mais, tous les 3 mois, tu reposes cette même question.
    A chaque fois, tu copies un morceau de code au hasard, et tu demandes pourquoi ça ne marche pas.
    Et tu passes une semaine sur un truc que tu pourrais faire en 3 minutes si tu réfléchissais.

    Tu as recompté, tu as toujours 32 lignes ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Peut être qu'a force de trop réfléchir je me mélange les pédales et ça me fais traîner.
    Pourquoi ne pas me dire simplement ce qui ne va pas dans mon code et comment dois-je écrire mon code.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Ce ne sont pas des bouts de codes que je copie au hasard. Je ne suis pas d'accord. Mes projets, je les mène moi même du début à la fin et c'est lorsque je suis bloqué
    que je me tourne vers le forum.

  11. #11
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Visiblement, tu ne veux pas chercher à comprendre pourquoi ton code ne marche pas.
    Dommage.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Bien au contraire, je cherche mais en vain.
    Aide moi STP

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Recompte les lignes dans la fenetre jaune ... là où tu avais trouvé 32. Ce n'est pas 32.
    Compte le nombre de lignes pour le matricule 0789554L, Il apparaît à la ligne 1, puis à la ligne ... puis à la ligne ...
    Pareil pour le matricule 178459p. Quels sont les n° de lignes où il apparaît ?

    Regarde tout ça. Est-ce que tu remarques quelque chose ?
    Si tu ne remarques toujours rien, regarde le matricule du 3ème élève, puis le 4ème.
    Tu vas bien finir par voir ce qui se passe.

    Quand j'ai un bug dans mes programmes, c'est comme ça que je fais. Je regarde ligne par ligne ce que mon programme fait. Et je cherche à comprendre pourquoi il ne fait pas ce que je veux.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Je remarque que chaque matricule apparaît six fois au lieu de n'apparaître qu'une seule fois.
    je comprend qu'il m'affiche le nombres de matricule d'élève en fonction du nombre de ligne de la table élève. Ce qui n'est pas normal

  15. #15
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Chaque matricule apparaît 6 fois.
    Et pas dans le désordre... 1 puis 2 puis 3 puis 4 puis 5 puis 6 et on recommence, dans le même ordre.

    Le programme traite les 6 élèves et il recommence. 6 fois.
    D'après toi, si tu avais 10 élèves dans ton fichier, tu aurais combien de lignes dans cette fenêtre jaune.

    Et ensuite, c'est quand même essentiel : POURQUOI le programme traite chaque élève plusieurs fois ?

    Indice : dans ton premier message, tu as donné la réponse à cette question.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    C'est certainement parce que j'ai utilisé "POUR TOUTE LIGNE DE TABLE_Elève" qui une boucle.

  17. #17
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    On n'a toujours pas le nombre de lignes, alors on va avancer.
    Dans ta fenêtre jaune, il n'y a pas 32 lignes, mais 36. Ok, tu sais compter jusqu'à 36 ?
    Et 36, c'est 6x6. Ok ? Coïncidence ou pas ?
    C'est quand même dommage que tu ne sois pas capable d'écrire ça toi-même.


    Oui ... c'est la piste, tu fais une boucle : " Pour toute ligne de ... ... "

    Mais, est-ce que tu vois pourquoi le programme passe 36 fois par cette instruction, alors qu'il devrait passer seulement 6 fois ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  18. #18
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 807
    Points : 5 263
    Points
    5 263
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Cela ne va pas résoudre le problème présent, (quoique ...) mais j'ai remarqué qu'en général, lorsque tu utilise champ table mémoire, tu le remplis puis tu fais 2 contrôle, le calcul etc.
    Pourquoi ne pas faire les opérations "annexes" lors du remplissage, soit directement dans ton code de remplissage, soit dans "Affichage d'une ligne". On ne boucle qu'une fois dans ce cas au lieu d'une boucle supplémentaire par opération.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    TIEMELEKRO
    Inscrit en
    Janvier 2015
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : TIEMELEKRO
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2015
    Messages : 207
    Points : 0
    Points
    0
    Par défaut
    Effectivement il y a 36 lignes. tellement paniqué à l'idée de pas pouvoir passer cette étape que je dis n'importe quoi.
    Mais je ne vois pas pourquoi le programme passe 36 fois au lieu de 6 fois.

  20. #20
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Relis ton premier message.
    En lisant ton premier message, je savais que tu faisais le même traitement plein de fois, beaucoup trop.

    La réponse est dans ton 1er message.

    Et si tu ne trouves pas, je t'ai donné une indication. Que tu n'as pas écoutée, bien entendu, parce que tu n'écoutes jamais les conseils, tu écoutes uniquement les messages qui te donnent la solution toute faite.

    Dans ton fichier test, ajoute un 7ème élève, et même un 8ème. Et regarde ce qui se passe quand tu as 7 élèves, quand tu as 8 élèves.
    Combien de lignes tu as dans cette fenêtre jaune pour 7 élèves, ou pour 8 élèves.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

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

Discussions similaires

  1. [Débutant] Rechercher des infos dans une listeview
    Par elo66 dans le forum C#
    Réponses: 4
    Dernier message: 07/08/2019, 01h06
  2. [Débutant] Récupérer des infos dans une table et les liés a une autre table
    Par mcyann dans le forum Entity Framework
    Réponses: 2
    Dernier message: 27/07/2018, 10h35
  3. Rechercher des intervalles dans une table
    Par Allegro dans le forum Requêtes
    Réponses: 11
    Dernier message: 11/12/2012, 21h42
  4. Recherche des parrent dans une table
    Par zooffy dans le forum Développement
    Réponses: 2
    Dernier message: 21/01/2010, 15h28
  5. [MySQL] Chercher des info dans une DB, et les afficher en lien
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/10/2005, 19h29

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