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

  1. #1
    Nouveau membre du Club
    Etat: afficher dans un état des données issues d'une autre source
    Bonsoir le forum!
    J'ai créé un état E_Bulletin_Sem1 dans lequel je veux afficher le rang semestriel, l'effectif de la classe. Il se trouve que, dans la source de l'état E_Bulletin_Sem1, il n'y pas un champ qui prend en compte ces données. Le rang semestriel se trouve dans R_Classe_MS et l'effectif dans R_Effectif_classe. Comment s'y prendre?

    djibysadji

  2. #2
    Membre expérimenté
    Vous devez changer la source de votre état:
    Créer une requête prenant les éléments de "E_Bulletin_Sem1" + le rang semestriel et l'effectif de la classe; cette nouvelle requête sera alors la novelle source de votre état.

  3. #3
    Nouveau membre du Club
    Citation Envoyé par Zekraoui_Jakani Voir le message
    Vous devez changer la source de votre état:
    Créer une requête prenant les éléments de "E_Bulletin_Sem1" + le rang semestriel et l'effectif de la classe; cette nouvelle requête sera alors la novelle source de votre état.
    Bonjour!
    Merci pour la réponse. J'essaie pour voir ce que cela va donner.
    djibysadji

  4. #4
    Membre expert
    bd note moyenne v6
    Comme promis, une nouvelle version v6

    L' effectif de la classe figure dans l'état 'Etat- rang dans la classe' à lancer depuis le form F_calcul_MM ou bien dans la requete R_E_classement semestre

    Le form F_attrib_notes permet d'attribuer des notes à une classe . Les listes déroulantes Classe_num et devoir_num sont en cascade.

    Bon w-e
    "Always look at the bright side of life." Monty Python.

  5. #5
    Nouveau membre du Club
    Citation Envoyé par micniv Voir le message
    Comme promis, une nouvelle version v6

    L' effectif de la classe figure dans l'état 'Etat- rang dans la classe' à lancer depuis le form F_calcul_MM ou bien dans la requete R_E_classement semestre

    Le form F_attrib_notes permet d'attribuer des notes à une classe . Les listes déroulantes Classe_num et devoir_num sont en cascade.

    Bon w-e
    Bonsoir micniv, le forum!
    Excellent travail. Merci encore une fois.
    J'ai un problème pour intégrer le seul champ RS(rang semestriel) dans l'état E_Bulletin_Sem1 dont la source source est R_Bulletin_Sem1 réalisé à partir de la table T_temp_matiere_MM.
    1/Ci-dessous les champs de la requête R_Bulletin_Sem1 à partir de laquelle j'ai réalisé l'état E_Bulletin_Sem1:
    Eleve_id
    Matiere_id
    Matiere_libelle
    Semestre(critère semestre 1)
    DV_moy
    CP_moy
    MM
    RM
    coefMatiere
    PTS(expression[MM]*[coefMatiere])
    Appreciations
    2/ L'état E_Bulletin_Sem1: Il comporte deux tableaux superposés:
    a/Le tableau qui reprend des champs de R_Bulletin_Sem1
    Matiere_libelle
    DV_moy
    CP_moy
    MM
    PTS([MM]*[coefMatiere])
    RM
    coefMatiere
    Appreciations
    b/ Ce deuxième tableau comporte les zones de texte nommées ci-dessous: Total(SommeMM), COEF(SommeCoef), Moy(MS), Rang(RS), EffClasse, Remarques et Distinctions
    J'ai réussi à remplir toutes les zones de textes en utilisant des champs de l'état (PTS et COEF). Mais je n'y arrive pas avec RS. La tache est d'autant plus ardue pour moi qu'il n'y a pas de champ faisant référence à RS dans E_Bulletin_Sem1

    C'est un impératif de concevoir les bulletins de cette façon pour répondre aux normes nationales.
    djibysadji

  6. #6
    Membre expert
    2/ L'état E_Bulletin_Sem1: Il comporte deux tableaux superposés
    pour le 2 ème tableau (le bulletin des MS) qui a besoin d'une source de données différente des MM, il faut faire un sous report (ça fonctionne comme des sous form avec les form)

    Bonne continuation
    micniv
    "Always look at the bright side of life." Monty Python.

  7. #7
    Nouveau membre du Club
    Re
    Citation Envoyé par Zekraoui_Jakani Voir le message
    Vous devez changer la source de votre état:
    Créer une requête prenant les éléments de "E_Bulletin_Sem1" + le rang semestriel et l'effectif de la classe; cette nouvelle requête sera alors la novelle source de votre état.
    Bonsoir micniv, le forum!
    J'ai essayé de changer la source de l'état en associant R_Bulletin_MS_1, R_Bulletin_notes_MM_1 et R_EffClasse_Sem1_DS mais la requête créée affiche pour chaque élève autant de lignes qu'il y a d'élèves dans la classe. Voici la requête:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    SELECT R_Bulletin_MS_1.IdClasse, R_Bulletin_MS_1.NomClasse, R_Bulletin_MS_1.IdEleve, R_Bulletin_MS_1.Eleve_nom, R_Bulletin_MS_1.semestre, R_Bulletin_notes_MM_1.matiere_id, R_Bulletin_notes_MM_1.Matiere_libelle, R_Bulletin_notes_MM_1.DV_moy, R_Bulletin_notes_MM_1.CP_moy, R_Bulletin_notes_MM_1.MM, R_Bulletin_notes_MM_1.coefMatiere, R_Bulletin_notes_MM_1.PTS, R_Bulletin_notes_MM_1.RM, R_Bulletin_notes_MM_1.Appreciations, R_Bulletin_MS_1.MS, R_Bulletin_MS_1.RS
    FROM R_EffClasse_Sem1_DS, R_Bulletin_MS_1 INNER JOIN R_Bulletin_notes_MM_1 ON R_Bulletin_MS_1.IdClasse = R_Bulletin_notes_MM_1.IdClasse;


    J'aurai certainement le même résultat dans les bulletins si je les conçois à partir de cette requête: ce qui n'est pas le résultat attendu.
    djibysadji

  8. #8
    Expert éminent sénior
    bonsoir,
    la requête créée affiche pour chaque élève autant de lignes qu'il y a d'élèves dans la classe.
    donc à priori, il faut ajouter une jointure avec IdEleve
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  9. #9
    Nouveau membre du Club
    Re
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir,

    donc à priori, il faut ajouter une jointure avec IdEleve
    Bonsoir
    Je tourne en rond depuis que j'ai lu ta suggestion. J'ai tenté des choses en vain. Comment réaliser cette jointure finalement?

    Merci

    djibysadji

  10. #10
    Expert éminent sénior
    Comment réaliser cette jointure finalement?
    tout simplement via l'interface de création de requêtes (QBE) à condition, bien sûr, que le champ existe dans les 2 requêtes, sinon il faut l'ajouter
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  11. #11
    Membre expert
    J'ai essayé de changer la source de l'état en associant R_Bulletin_MS_1, R_Bulletin_notes_MM_1 et R_EffClasse_Sem1_DS mais
    Je m'aperçois que j'avais répondu un peu trop brièvement à 08H05.

    en fait la source de l'état ne doit comporter qu'une ligne comportant la classe et le semestre;
    Puis tu dois créer 2 sous états (et non pas un seul) : un sous état pour les classements MM , et un sous état pour les classements MS , ces sous états sont associés aux colonnes classe et semestre de l'état parent. Ce n'est pas tout à fait simple quand on débute ...

    A+
    "Always look at the bright side of life." Monty Python.

  12. #12
    Nouveau membre du Club
    Re
    Citation Envoyé par micniv Voir le message
    Je m'aperçois que j'avais répondu un peu trop brièvement à 08H05.

    en fait la source de l'état ne doit comporter qu'une ligne comportant la classe et le semestre;
    Puis tu dois créer 2 sous états (et non pas un seul) : un sous état pour les classements MM , et un sous état pour les classements MS , ces sous états sont associés aux colonnes classe et semestre de l'état parent. Ce n'est pas tout à fait simple quand on débute ...

    A+
    Bonsoir micniv, le forum!
    Ok. J'essaie ta suggestion demain pour si je m'en sortirai.

    Merci

    djibysadji

    Bonsoir!
    Merci pour le tuyau. J'ai finalement réussi à intégrer RS. Cependant j'ai des bulletins qui m'inscrivent un zéro (o) dans les cages qui devraient être vides car il y a des matières où certaines classes ne font que des devoirs. Un élève peut justifier son absence à une composition dans ce cas aussi il ne doit pas y avoir de valeur numérique dans la cage correspondante.

    Merci
    djibysadji

  13. #13
    Nouveau membre du Club
    Bug dans bd moyenne V6
    Citation Envoyé par micniv Voir le message
    Comme promis, une nouvelle version v6

    L' effectif de la classe figure dans l'état 'Etat- rang dans la classe' à lancer depuis le form F_calcul_MM ou bien dans la requete R_E_classement semestre

    Le form F_attrib_notes permet d'attribuer des notes à une classe . Les listes déroulantes Classe_num et devoir_num sont en cascade.

    Bon w-e
    Bonjour micniv, le forum!
    Nous remarquons que T_temp_matiere_MM ne stocke pas en même temps les notes des deux semestres.



    djibysadji

  14. #14
    Membre expert
    bonjour,

    ci_joint la nouvelle version v7 qui vous résoud le problème mentionné ci-dessus.

    C'est maintenant à vous désormais de vous approprier ce code et de le parfaire. Tout ce que vous souhaitez faire avec les notes est possible en ACCESS mais il vous faut étudier et comprendre chaque jour un peu plus l'organisation des données et le VBA. C'est à titre d'exemple que j'ai développé ces premières fonctions mais l'application est loin d'être complète j'en conviens.

    Bon courage car le jeu en vaut la chandelle !
    Micniv
    "Always look at the bright side of life." Monty Python.

  15. #15
    Nouveau membre du Club
    Re
    Citation Envoyé par micniv Voir le message
    bonjour,

    ci_joint la nouvelle version v7 qui vous résoud le problème mentionné ci-dessus.

    C'est maintenant à vous désormais de vous approprier ce code et de le parfaire. Tout ce que vous souhaitez faire avec les notes est possible en ACCESS mais il vous faut étudier et comprendre chaque jour un peu plus l'organisation des données et le VBA. C'est à titre d'exemple que j'ai développé ces premières fonctions mais l'application est loin d'être complète j'en conviens.

    Bon courage car le jeu en vaut la chandelle !
    Micniv
    Bonjour micniv, le forum!
    Vous faites un excellent travail. Soyez-en remercié. Avec vous j'ai acquis des notions très utiles à travers cette application.
    Merci pour le soutien et les encouragements. Du courage j'en ai vraiment besoin: la tache est ardue!

    Excellente fin de journée

    djibysadji

  16. #16
    Nouveau membre du Club
    Re
    Citation Envoyé par djibysadji Voir le message
    Bonjour micniv, le forum!
    Vous faites un excellent travail. Soyez-en remercié. Avec vous j'ai acquis des notions très utiles à travers cette application.
    Merci pour le soutien et les encouragements. Du courage j'en ai vraiment besoin: la tache est ardue!

    Excellente fin de journée

    djibysadji
    Bonjour!
    Ce matin, j'ai remarqué qu'il y avait une anomalie au niveau du classement par matière dans T_temp_matiere_MM.
    Dans T_eleve il y 4 élèves en 6ème A1 et 3 en 6-A2, mais je constate que les rangs vont au-delà de 4ème pour la seule classe de 6ème-A1 prise en compte au second semestre. Il semble que le classement du premier semestre ne s'arrête pas et continue jusqu'au second semestre.
    J'y suis depuis ce matin mais je ne trouve pas d'issue pour l'instant.

    djibysadji

  17. #17
    Membre expert
    Bonsoir djibysadji,

    il faut rajouter le critère Semestre dans le calcul des moyennes par matière, code lancé par le bouton qui se trouve dans le form F_calcul_MM_MS.
    La procédure corrigée est la suivante :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    Private Sub cmd_matieres_calculerRM_Click()
        ' une fois que les moyennes par matières sont calculées (via cmd_matieres_CalculerMM_Click),
        ' on peut attribuer le rang par matière
    
        Dim s1 As String, strSql As String
        Dim db1 As DAO.Database, rs1 As DAO.Recordset, rs2 As DAO.Recordset
    
        ' déclarer une instance de l'application
        Set db1 = CurrentDb
        ' boucle sur les matière de la classe avec devoirs dans cette période
        s1 = "classe_id =" & Me.classe_num _
             & " AND format(devoir_date,'yyyymmdd') >= '" & Format(Me.date_deb, "yyyymmdd") & "'" _
             & " AND format(devoir_date,'yyyymmdd') <= '" & Format(Me.date_fin, "yyyymmdd") & "'"
    
        strSql = "SELECT Matiere_id" _
                 & " FROM (SELECT Classe_id, Matiere_id, Devoir_id, Devoir_valide, Devoir_date" _
                 & " FROM T_devoir" _
                 & " WHERE Devoir_valide = True" _
                 & " AND " & s1 & ") GROUP BY Matiere_id"
        Debug.Print strSql
        Set rs1 = db1.OpenRecordset(strSql, dbOpenSnapshot)
    
        If rs1.RecordCount = 0 Then
            MsgBox "Il n'y a aucun devoir noté pour cette classe dans la période saisie", vbInformation
            Exit Sub
        End If
    
        rs1.MoveLast
        rs1.MoveFirst
        ' boucle sur les matière de la classe
        While Not rs1.EOF
            ' Ouvrir un recordset sur la discipline
            strSql = "SELECT * FROM T_temp_matiere_MM " _
                     & " WHERE Classe_id= " & Me.classe_num _
                     & "  AND Matiere_id= " & rs1!matiere_id _
                     & " AND semestre ='" & Me.Sem_libelle & "'"
            Set rs2 = db1.OpenRecordset(strSql)
            If rs2.RecordCount = 0 Then GoTo NEXT_MATIERE
            rs2.MoveLast
            rs2.MoveFirst
            ' Boucle
            While Not rs2.EOF
                rs2.Edit
                rs2!RM = DCount("*", "T_temp_matiere_MM", _
                                "Classe_id= " & Me.classe_num & " AND Matiere_id= " & rs1!matiere_id _
                                & " AND semestre ='" & Me.Sem_libelle & "' AND [MM]>" & Replace(rs2![MM], ",", ".")) + 1
                rs2.Update
    NEXT_MATIERE:
                rs2.MoveNext
            Wend
    
            rs1.MoveNext
        Wend
    
        MsgBox "Traitement terminé"
    
    Exit_0:
        Set rs2 = Nothing
        Set rs1 = Nothing
        Set db1 = Nothing
    
    End Sub


    cordialement,
    "Always look at the bright side of life." Monty Python.

  18. #18
    Nouveau membre du Club
    Re
    Bonsoir!
    Super!

    djibysadji

###raw>template_hook.ano_emploi###