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 :

chargement d'un tableau à partir d'une requête de jointure


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut chargement d'un tableau à partir d'une requête de jointure
    Bonjour tout le monde,
    Je suis entrain de créer un système de saisie des notes des élèves,
    voici le modèle relationnel :
    ( lien de l'image si c'est pas visible : http://postimg.org/image/rdrup4n93

    l'utilisateur choisit la classe, la matière et le trimestre,
    le tableau contenant les colonnes suivantes : id de l'eleve, son nom , son prénom et son note dans cette matière,
    ce tableau ( basé sur une requete)est en saisie pour que l'utilisateur puisse entrer les notes,
    pour cela j'ai fait la requete suivante pour charger le tableau de saisie des notes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT eleve.IDeleve, eleve.nom, eleve.prenom, note.note FROM
     eleve, note, matière
    WHERE eleve.Code_classe = {param1} AND note.numero_trimestre= {param2} AND matière.code_matière= {param3}
    et le code d'exécution est comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    REQ_saisie_note.param2= COMBO_Trimestre..Valeur
    REQ_saisie_note.param1=TABLE_REQ_classes_inscription.COL_Code_classe[TableSelect(TABLE_REQ_classes_inscription)]
    REQ_saisie_note.param3=TABLE_Matière.COL_Code_matière[TableSelect(TABLE_Matière)]
     
    HExécuteRequêteSQL(REQ_saisie_note)
    ça se compile sans erreur mais le tableau ne se remplie pas, est ce que la requete n'est pas adéquate ? ou bien d'autres choses ?
    Merci d'avance

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    remarque: le fichier matière_élève est( malgré les deux fichiers matière et élève ne le sont pas) , est ce que ça peut être d'ou vient le problème ? est ce que je dois le remplir moi-même ?

  3. #3
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Ta requêtes n'est pas bonne, il n'y a aucune jointure entre les fichiers eleve, note et matière que tu déclares dans le FROM.
    En plus il te manques le fichier matiere_eleve dans la requête (je comprends que tu as ajouté la rubrique IDeleve dans le fichier note pour y palier, mais cette rubrique n'a pas lieue d'être dans ce fichier)

    Je serai toi j'utiliserais l'éditeur de requête de windev il déterminera toutes les jointures en fonction de ton analyse.

    Ceci dit je ne suis pas sur que cette requêtes retournes les valeurs que tu souhaites.
    Cette requête ne retournera rien tant qu'aucune note ne sera saisie...

    J'essaie de comprendre ce que tu veux faire :
    Tu souhaites afficher dans un champ table la liste des élèves d'une classe et s'il y a des notes pour une matière et un trimestre défini en paramètre les afficher aussi.

    Si c'est ça, cela signifie que tu dois faire une jointure gauche (LEFT OUTER JOIN) vers le fichier note.

    Ta requête devient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT
    	eleve.IDeleve, 
    	eleve.nom, 
    	eleve.prenom, 
    	note.note 
    FROM
    	eleve
    	INNER JOIN
    	matière_eleve
    		ON eleve.IDeleve = matière_eleve.IDeleve
    	LEFT OUTER JOIN
    	note
    		ON matière_eleve.IDmatière_eleve = note.IDmatière_eleve
    WHERE 
    	eleve.Code_classe          = {param1} 
    AND	matière_eleve.code_matière = {param3}
    AND	note.numero_trimestre      = {param2}
    Vérifies les noms des fichiers et des rubriques il est possible que je me sois trompé, surtout avec les accents que tu as mis dans les noms...

    Je précise que la définition des jointures gauches, droites ou totales sont possible avec l'éditeur de requête de windev. Il suffit de double cliquer sur le symbole de jointure dans le schéma de la requête et une fenêtre s'ouvre avec la liste des jointures. Il suffit de cocher ce que l'on veut inclure et le tour est joué...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Merci Laurent pour votre tentative de m'aider,
    j'ai passé deux heures tester e que tu m'a proposé, mais en vain,
    ceci me donne le même résultat : un tableau vide.
    est ce que je dois remplir le fichier matière_élève ( qui a été créé automatiquement pour gérer la liaison n-n entre élève et matière ) ?
    est ce que vous pouvez me proposer une autre façon de procéder ?
    merci d'avance

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 25
    Points : 58
    Points
    58
    Par défaut
    Je ne suis pas un as en SQL, mais je dirais que si tes tables "matiere_eleve" ET "eleve" sont vides, la requête ne te retournera aucun enregistrement puisqu'il y a une jointure naturelle sur ces deux tables ...

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    La piste de lolo est bonne mais la dernier jointure doit être complété par la restriction si on mets la restriction dans le WHERE la jointure devient un INNER donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT
    	eleve.IDeleve, 
    	eleve.nom, 
    	eleve.prenom, 
    	note.note 
    FROM
    	eleve
    	INNER JOIN matière_eleve ON eleve.IDeleve = matière_eleve.IDeleve
    	LEFT OUTER JOIN	note ON matière_eleve.IDmatière_eleve = note.IDmatière_eleve AND	note.numero_trimestre      = {param2}
    WHERE 
    	eleve.Code_classe          = {param1} 
    AND	matière_eleve.code_matière = {param3}
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  7. #7
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Bonjour,

    évidemment il faut qu'il y ait des données dans les tables...
    et que ces données soient compatibles avec un résultat.

    Ensuite il y a bien deux façons de faire les jointures en SQL
    1- Dans la clause FROM
    2 - Dans la clause WHERE

    Personnellement je préfère de loin la jointure dans la clause FROM qui est à la fois plus souple et plus compréhensible.

    Donc je passerai cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SELECT
    	eleve.IDeleve, 
    	eleve.nom, 
    	eleve.prenom, 
    	note.note 
    FROM
    	(eleve INNER JOIN matière_eleve 
    		ON eleve.IDeleve = matière_eleve.IDeleve )
    	LEFT OUTER JOIN note
    		ON matière_eleve.IDmatière_eleve = note.IDmatière_eleve
    WHERE 
    	eleve.Code_classe          = {param1} 
    AND	matière_eleve.code_matière = {param3}
    AND	note.numero_trimestre      = {param2}
    Avec un test sans la clause WHERE pour voir si je ne me suis pas trompé dans mon jeu de données...
    ET un petit coup de debug pour m'assurer du nombre de lignes renvoyés par ma requête...

    Pour Michel et Laurent j'attire votre attention sur la différence entre les syntaxes suivantes ( j'ai fais des test sérieux pour vérifier ça).

    les requêtes suivantes affichent le même résultat mais avec des temps différents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Select T1.champ, T2.champ, T3.champ
    FROM (T1 INNER JOIN T2 ON T1.ida=T2.ida ) LEFT OUTER JOIN T3 ON T3.idb=T1.idb
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select T1.champ, T2.champ, T3.champ
    FROM (T1 LEFT OUTER JOIN T3 ON T3.idb=T1.idb) INNER JOIN T2 ON T2.ida=T1.ida
    le résultat changeant en fonction du nombre d'enregistrement engendré par les liaisons (c'est un problème de math lié au nombre de lignes des Hash de chaque table générés lors des jointures)

    De plus la synthaxe suivante est fausse bien qu'encore relativement bien tolérée par HF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select T1.champ, T2.champ, T3.champ
    FROM T1, T2, T3
    WHERE T1.ida=T2.ida
    AND T3.idb=T1.idb
    car on ne peut pas savoir si c'est ((A<->B)<->C) ou (A<->B<->C) ou (A<->(B<->C))
    et (A<->B<->C) peut poser des conflits selon les jointures utilisées.

    Enfin la syntaxe suivante est juste en pratique mais est floue peut poser des conflits selon les jointures utilisées donc est à éviter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select T1.champ, T2.champ, T3.champ
    FROM T1 INNER JOIN T2 ON T1.ida=T2.ida  LEFT OUTER JOIN T3 ON T3.idb=T1.idb
    Nous n'avions pas l'habitude de mettre de parenthèses dans nos requêtes mais il va falloir s'y mettre car après réflexion c'est tout à fait logique.

    Bon dev

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Merci tout le monde pour vos tentatives de m'aider
    le fichier élève n'est pas vide de même pour le fichier matière, j'ai ajouté quelques tuples dans chacun d'eux.
    ma question est comment remplir le fichier matière_élève ?
    matière_élève ( id_matière_élève, id_élève, code_matière) ?
    si c'est le cas , donc à chaque ajout d'un élève (inscription) je dois ajouter automatiquement 8 (nombre de matières étudiées) tuples dans le tableau matière_élève ?
    en tout cas,j'ai ajouté quelques tuples dans le fichier matière_élève de telle façon que la requête retourne un résultat mais en vain!
    J'ai lié le tableau(que je veux remplir) à la requête, les paramètres de cette requete sont mises à jour à chaque selection d'un ligne des deux autres tables ( table_matière , et table_élève) aussi que la selection du trimestre.
    et j'ai mis l'exécution dans 4 emplacement :
    */initalisation du tableau ( que je veux remplir)
    */lors de selection d'un ligne du tab_élève
    */lors de selection du tab_matière
    */selection du trimestre
    je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HExécuteRequête(REQ_saisie_note)
    est ce que l'éxécution du requete n'est pas suffisante pour remplir le tableau ?
    comment procéder ?
    merci d'avance.

  9. #9
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Je pense que ton problème c'est que le fichier matière_eleve est vide.

    Es ce que tu peux nous confirmer que cette table contient bien des enregistrements ?

    Cette table doit être renseigné lors de l'ajout de chaque élève.
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par dsr57 Voir le message
    Je pense que ton problème c'est que le fichier matière_eleve est vide.

    .
    vous avez raison ! J'ai vérifié et trouvé que ce fichier est encore vide, mais cette fois l'ajout est fait avec sucés ,
    : http://postimg.org/image/ze4wdsah3/
    le problème maintenant c'est que l'exécution et le remplissage ne se fait qu'au début : l'intialisation du tableau,
    mais lorsque je selectionne un autre classe ça ne change rien dans le tableau de saisie des notes, malgré que j'ai mis le code de l'exécution de la requete lors de selection d'une ligne des tableaux tab_élève et tab_matière et la selection du trimestre ( c'est à dire dés le changement d'un des 3 paramètres de la requete).
    l'exécution se fait, mais le remplissage ne se fait qu'à l'initalisation, dés la deuxième exécution ( lors du changement d'un ou plusieurs paramètres) le remplissage ne se fait pas,
    y'a t il des propositions ( je cherche pas de code prêt, juste une idée, une fonction..)
    et merci d'avance

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Bon j'ai essayé ce bout de code là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TANTQUE HTrouve(REQ_saisie_note)
    	TableAjouteLigne(TABLE_REQ_saisie_note,REQ_saisie_note)
            HLitSuivant(REQ_saisie_note)
    FIN
    il me donne cet erreur

    Erreur :'REQ_saisie_note' est ici considéré comme la requête HyperFileSQL. Pour accéder à un autre élément, utilisez une déclaration externe.
    FEN_saisie_note.TABLE_REQ_classes_inscription, Sélection d'une ligne, ligne 3, colonne 41

  12. #12
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Bonjour,

    Tu ne peux pas ajouter une ligne comme ça....

    Il faut que tu spécifies les rubriques à afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TANTQUE HTrouve(REQ_saisie_note)
    	TableAjouteLigne(TABLE_REQ_saisie_note,REQ_saisie_note.nom,REQ_saisie_note.prenom,REQ_saisie_note.note )
            HLitSuivant(REQ_saisie_note)
    FIN
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    ça ne marche encore pas,
    seulement l'initialisation se fait mais dés le changement d'un des paramètres ( selection d'une ligne du tab_classe par exemple) le contenu du tableau ne change pas en fonction de selection, il reste inchangé,
    y'a t il quelqu'un qui peut me proposer comment résoudre ce problème ?

  14. #14
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Citation Envoyé par futur_ingenieur Voir le message
    ça ne marche encore pas,
    seulement l'initialisation se fait mais dés le changement d'un des paramètres ( selection d'une ligne du tab_classe par exemple) le contenu du tableau ne change pas en fonction de selection, il reste inchangé,
    y'a t il quelqu'un qui peut me proposer comment résoudre ce problème ?
    Est-ce que tu rejoues le code qui exécute la requête et rafraichit l'affichage de la table à chaque modification de tes champs paramètre ?

    Perso dans ce cas je crée une procédure avec le code qui exécute la requête et rafraichit l'affichage de la table.
    Puis je fais jouer la procédure à chaque évènement que nécessaire...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par laurent30s Voir le message
    Est-ce que tu rejoues le code qui exécute la requête et rafraichit l'affichage de la table à chaque modification de tes champs paramètre ?
    oui, j'ai mis le code dans la rubrique " lors de selection d'une ligne" des deux tableaux eleve et matière
    Citation Envoyé par laurent30s Voir le message
    Perso dans ce cas je crée une procédure avec le code qui exécute la requête et rafraichit l'affichage de la table.
    Puis je fais jouer la procédure à chaque évènement que nécessaire...
    tu pense que l'introduction d'une procédure va résoudre le problème ?
    mais le code qui est hors procédure dois faire la tache.. puis l'introduction d'une procédure ne vas que minimiser le code ( qui doit etre fonctionnel au premier lieu)
    Vraiment, je suis dans le pétrin ! ça fait 3 jours et il n'y a aucun avancement.

  16. #16
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    J'ai du mal à comprendre ce que tu veux faire et ce que tu as déjà fait.

    Ta requête, c'est une requête faite par l'éditeur de windev ou dans une chaîne. Quel est son code ?

    Montre nous ton code qui permet la mise à jour de la table.

    Autre chose j'ai aussi du mal à comprendre l'IHM de ta fenêtre.
    Tu dis : "j'ai mis le code dans la rubrique " lors de selection d'une ligne" des deux tableaux eleve et matière"
    Tu as 1 table que tu veux mettre à jour + 2 tables pour passer les paramètres eleve et matière ??? je comprends pas...
    Si tu peux joindre une image de la fenêtre ça peut aider à comprendre...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    vous avez raison Laurent.
    bon voici l'IHM de la fenetre de saisie des notes :

    http://postimg.org/image/tz30s50uv/

    voici le code sql de lq requête ( faite dans l'editeur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT
    eleve.IDeleve, 
    eleve.nom, 
    eleve.prenom, 
    note.note 
    FROM
    eleve
    INNER JOIN
    matière_eleve
    ON eleve.IDeleve = matière_eleve.IDeleve
    LEFT OUTER JOIN
    note
    ON matière_eleve.IDmatière_eleve = note.IDmatière_eleve
    WHERE 
    eleve.Code_classe          = {param1} 
    AND	matière_eleve.code_matière = {param3}
    AND	note.numero_trimestre      = {param2}
    les 2 premers tableaux sont liés aux fichier "classes" et " matières"
    le code de l'nitalisaton du 3ème tableau est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MaSource.param1 = ""
    MaSource.param2 = ""
    MaSource.param3 = ""
    HExécuteRequête(REQ_saisie_note)
    code de mise à jour du 3ème tableau lors du selection d'une ligne du table classe ( changement du param1 en d'autres mots)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    REQ_saisie_note.param1= TABLE_REQ_classes_inscription.COL_Code_classe[TABLE_REQ_classes_inscription]
     
    HExécuteRequête(REQ_saisie_note)
     
    TANTQUE HTrouve(REQ_saisie_note)
    	TableAjouteLigne(TABLE_REQ_saisie_note, REQ_saisie_note.IDeleve ,REQ_saisie_note.nom,REQ_saisie_note.prenom,REQ_saisie_note.note )
    	HLitSuivant(REQ_saisie_note)
    FIN
    de meme pour le changement des deux autres paramètre ( param2 et param3)
    seulement l'initialisation se fait, mais la mise à jour du tableau ne se fait pas lors du changement d'un ou plusieurs paramètres ( code du classe, matière, trimestre)

  18. #18
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Comment expliquez vous que le tableau se remplie lors de l'initialisation, ( cad la requete retourne des données).
    mais lorsque j'essaye d'exécuter la meme requete dans l'éditeur de requete ( avec les mêmes paramètres) ça me donne aucun résultat !

  19. #19
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Tu décoche les paramètres inutiles lorsque tu exécutes la requête depuis l'éditeur ? (première fenêtre après le GO)
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  20. #20
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 43
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par michel.souris Voir le message
    Tu décoche les paramètres inutiles lorsque tu exécutes la requête depuis l'éditeur ? (première fenêtre après le GO)
    j'ai déjà essayé avec tout les combinaisons possibles, mais en vain.

Discussions similaires

  1. Enregistrer un tableau à partir d'une requête
    Par stannis dans le forum Langage
    Réponses: 2
    Dernier message: 11/04/2012, 10h14
  2. [A-03] Création d'un tableau à partir d'une requête
    Par helprojet dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/02/2009, 12h41
  3. Réponses: 19
    Dernier message: 04/08/2008, 12h38
  4. [SQL] Tableau associatif à partir d'une requête
    Par hugo69 dans le forum WinDev
    Réponses: 1
    Dernier message: 24/03/2007, 19h22
  5. [PHPLIB] Afficher un tableau à partir d'une requête
    Par Erigion dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 06/02/2006, 11h55

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