pourtant, dans l'autre discussion (ici) à part votre problème de format, vous semblez avoir trouvé la solution à votre problème, non ?
pourtant, dans l'autre discussion (ici) à part votre problème de format, vous semblez avoir trouvé la solution à votre problème, non ?
je donne une solution dans votre autre discussion
Salut membre du forum,
Je reviens avec la partie des compositions des classes de l'arabe.
Voici l'ensemble des codes de l'état "LISTE_DES_COMPOSANTS_NOTES_EVALUATIONS_AR"
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 Option Compare Database Option Explicit Dim RstMatiere As Recordset 'Stocke le curseur Dim NbM As Integer Dim boolEstVide As Boolean Private Sub RaffraichirMatieres() On Error Resume Next Dim db As Database Dim strSql As String Set db = CurrentDb strSql = "select * from MATIERE_CLASSE_AR_Req where annee_scol = '" & Me.AnneeScolAR & "' and classe_arabe = '" & Me.NiveauCompositionARABE & "' and NumCompoMCAr = " & Me.TxtComposition & "and Identif_Etablis = " & Me.IdEcoleAR & " order by CategorieMatiere asc;" Set RstMatiere = db.OpenRecordset(strSql) If RstMatiere.EOF Then boolEstVide = True Else boolEstVide = False NbMat = RstMatiere.RecordCount End If End Sub Public Sub majLesCtrl() On Error Resume Next RaffraichirMatieres RemplirMatiere RstMatiere.GetRows(Me.NbMat) End Sub Sub RemplirMatiere(Tableau_Ar As Variant) On Error Resume Next Dim i As Integer Dim j As Integer 'Récupère le nombre d'enregistrements Lus NbM = UBound(Tableau_Ar, 2) + 1 'affecte les valeurs aux zones de texte et labels For i = 0 To NbM - 1 Controls("m" & i + 1).Visible = True Controls("n" & i + 1).Visible = True Controls("m" & i + 1) = LibMatiereAr(CLng(Tableau_Ar(2, i))) '__________________________________________________ Controls("n" & i + 1) = LibNotesAr(Me.IdEcoleAR, _ Me.idCompoA, _ Me.COMPOSITION_AR, Me.AnneeScolAR, _ Me.MleEleveAR, CLng(Tableau_Ar(2, i))) '___________________________________________________ Next i 'Masque les autres zones de textes et labels 'NbM = NbM + 1 For j = NbM + 1 To 17 Controls("m" & j).Visible = False Controls("n" & j).Visible = False '***Controls("idM" & j).Visible = False Controls("m" & j) = "" Next j End Sub Function LibMatiereAr(idM As Integer) As String Dim db As Database Dim rst As Recordset Dim sql As String Set db = CurrentDb sql = "select * from Tbl_MatiereArabe where NumMatiere = " & idM & " order by CategorieMatiere asc;" Set rst = db.OpenRecordset(sql) If Not rst.EOF Then LibMatiereAr = UCase(rst.Fields("Matiere")) 'LibMatiereFr = UCase((Left(Trim(rst.Fields("Matiere")), 4))) Else LibMatiereAr = "" End If End Function Private Sub EntêteGroupe0_Format(Cancel As Integer, FormatCount As Integer) majLesCtrl End Sub Private Sub EntêteGroupe0_Print(Cancel As Integer, PrintCount As Integer) majLesCtrl End Sub Private Sub EntêteGroupe0_Retreat() majLesCtrl End Sub Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer) majLesCtrl End Sub Private Sub Report_Activate() majLesCtrl End Sub Private Sub Report_Open(Cancel As Integer) majLesCtrl End Sub Private Sub Report_Page() majLesCtrl End Sub Private Sub ZoneEntêtePage_Format(Cancel As Integer, FormatCount As Integer) majLesCtrl End SubMais les notes ne sont pas affichées. Ni message d'erreur. Pourtant c'est le même procédé que celui des compositions françaises.
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 'Ramener les notes de compositions françaises ' Public Function LibNotesAr(idecol As Long, idCompoAX As Long, CompoAra As Long, anscolN As String, mlelev As Long, idMatier As Long) As Double On Error GoTo OUMAR If IsNull(idecol) Then Exit Function If IsNull(idCompoAX) Then Exit Function If IsNull(CompoAra) Then Exit Function If IsNull(anscolN) Then Exit Function If IsNull(mlelev) Then Exit Function If IsNull(idMatier) Then Exit Function Dim bd As Database Dim R As Recordset Dim sql As String Set bd = CurrentDb sql = "select * from Req_INFOS_COMPOSITION_ARABE_NOTES_CLASSES_ARABE where ID_Etab = " & idecol & _ " and idCA = " & idCompoAX & _ " and CompoArabe = " & CompoAra & _ " and anscol ='" & anscolN & " 'and mle_Eleve = " & mlelev & " and matiereAr = " & idMatier & ";" 'Le code suivant permet de lever une erreur 'qu'on peut ensuite traiter pour savoir ce qui a posé problème CurrentDb.Execute sql, dbFailOnError Set R = bd.OpenRecordset(sql) With R If Not .EOF Then LibNotesAr = .Fields("Note") Else LibNotesAr = 0 End If End With Exit Function OUMAR: MsgBox "Erreur n° " & err.Number & vbCrLf & err.Description, vbCritical + vbOKOnly, "Une erreur est survenue" End Function
Que dois je faire pour découvrir ce qui fait défaut ?
Cordialement.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.IdEcoleAR, INFOS_COMPOSITION_ARABE.idCompoA, Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.AnneeScolAR, Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.NumInsCreleveAR, Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.MleEleveAR, Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.Nom_Prenoms_EleveComposantAR, Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.COMPOSITION_AR, Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.NiveauCompositionARABE, INFOS_COMPOSITION_ARABE.Total_Notes, INFOS_COMPOSITION_ARABE.MoyenneCompo, INFOS_COMPOSITION_ARABE.Classement, INFOS_COMPOSITION_ARABE.Appreciation FROM INFOS_COMPOSITION_ARABE INNER JOIN Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE ON (INFOS_COMPOSITION_ARABE.ID_Etab = Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.IdEcoleAR) AND (INFOS_COMPOSITION_ARABE.anscol = Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.AnneeScolAR) AND (INFOS_COMPOSITION_ARABE.mle_Eleve = Tbl_EVALUATION_NIVEAU_SCOLAIRE_ARABE.MleEleveAR) ORDER BY INFOS_COMPOSITION_ARABE.Total_Notes DESC;
Salut membres du forum !
Espérant trouver une suite favorable à la dernière requête du post#25, je ferme la discussion.
A la prochaine discussion.
Cordialement.
Bonsoir tee_grandbois,
observant vos explications, l'idée m'est venue de vous poser la question de savoir comment peut on écrire cela
avec du code ?
Cordialement.sauf que le champ matière ne peut pas exister puisque la requête la transforme en colonnes (le libellé de chaque matière devient un nom de colonne) et le champ NoteFr non plus n'existe plus puisque qu'elle devient la valeur de la colonne de chaque matière.
bonsoir,
cela ne s'écrit pas, cela s'obtient car la requête transforme certaines données de la requête en colonnes.
Un peu de lecture à propos du fonctionnement des analyses croisées et l'instruction Transform
Concernant cette partie, comment place t on ce code:afin de déceler les erreurs se trouvant dans les codes
Code : Sélectionner tout - Visualiser dans une fenêtre à part CurrentDb.Execute ..., dbFailOnErroret
Code : Sélectionner tout - Visualiser dans une fenêtre à part RaffraichirMatieres?
Code : Sélectionner tout - Visualiser dans une fenêtre à part LibNotesAr
Cordialement.
Salut membres du forum,
salut tee_grandbois,
finalement, j'ai obtenu la solution au problème posé dans mon post#29.
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 Option Compare Database Option Explicit 'Ramener les notes de compositions Arabes ' Public Function LibNotesAr(idecol As Long, idCompoAX As Long, CompoAra As Long, anscolN As String, mlelev As Long, idMatier As Integer) As Double On Error GoTo OUMAR If IsNull(idecol) Then Exit Function If IsNull(idCompoAX) Then Exit Function If IsNull(CompoAra) Then Exit Function If IsNull(anscolN) Then Exit Function If IsNull(mlelev) Then Exit Function If IsNull(idMatier) Then Exit Function Dim bd As Database Dim R As Recordset Dim sql As String Set bd = CurrentDb sql = "select * from Req_INFOS_COMPOSITION_ARABE_NOTES_CLASSES_ARABE where ID_Etab = " & idecol & _ " and idCA = " & idCompoAX & _ " and CompoArabe = " & CompoAra & _ " and anscol ='" & anscolN & " 'and mle_Eleve = " & mlelev & " and matiereAr= " & idMatier & ";" Set R = bd.OpenRecordset(sql) With R If Not .EOF Then LibNotesAr = .Fields("Note") Else LibNotesAr = 0 End If End With Exit Function OUMAR: MsgBox "Erreur n° " & err.Number & vbCrLf & err.Description, vbCritical + vbOKOnly, "Une erreur est survenue" End Function 'Ramener l'identifiant de la composition françaises des élèvrs ' Public Function identifiantCompoAr(idecol As Long, CompoAra As Long, anscolN As String, mlelev As Long) As Long Dim db As Database Dim rst As Recordset Dim sql As String Set db = CurrentDb sql = "select * from Req_INFOS_COMPOSITION_ARABE_NOTES_CLASSES_ARABE where ID_Etab = " & idecol & " and CompoArabe = " & CompoAra & " and anscol ='" & anscolN & " 'and mle_Eleve = " & mlelev & "" Set rst = db.OpenRecordset(sql) If Not rst.EOF Then identifiantCompoAr = UCase(rst.Fields("idCA")) 'identifiantCompoAr = UCase((Left(Trim(rst.Fields("Matiere")), 4))) 'Else ' identifiantCompoAr = "" End If End FunctionCordialement.
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105 Option Compare Database Option Explicit Dim RstMatiere As Recordset 'Stocke le curseur Dim NbM As Integer Dim boolEstVide As Boolean Private Sub RaffraichirMatieres() On Error Resume Next Dim db As Database Dim strSql As String Set db = CurrentDb strSql = "select * from MATIERE_CLASSE_AR_Req where annee_scol = '" & Me.ANNEE_SCOL & "' and classe_arabe = '" & Me.ClasseArabe & "' and NumCompoMCAr = " & Me.TxtComposition & " and Identif_Etablis = " & Me.ID_ETABL_FREQ & " order by CategorieMatiere asc;" Set RstMatiere = db.OpenRecordset(strSql) If RstMatiere.EOF Then boolEstVide = True Else boolEstVide = False NbMat = RstMatiere.RecordCount End If End Sub Public Sub majLesCtrl() On Error Resume Next RaffraichirMatieres RemplirMatiere RstMatiere.GetRows(Me.NbMat) End Sub Sub RemplirMatiere(Tableau As Variant) On Error Resume Next Dim i As Integer Dim j As Integer 'Récupère le nombre d'enregistrements Lus NbM = UBound(Tableau, 2) + 1 'affecte les valeurs aux zones de texte et labels For i = 0 To NbM - 1 Controls("m" & i + 1).Visible = True Controls("n" & i + 1).Visible = True Controls("m" & i + 1) = LibMatiereAr(CLng(Tableau(2, i))) '___________________________________________________ Controls("n" & i + 1) = LibNotesAr(Me.IdEcoleAR, Me.Txt_IdCompoA, Me.TxtComposition, Me.ANNEE_SCOL, Me.MleEleveAR, CLng(Tableau(2, i))) '___________________________________________________ Next i 'Masque les autres zones de textes et labels 'NbM = NbM + 1 For j = NbM + 1 To 22 Controls("m" & j).Visible = False Controls("n" & j).Visible = False '***Controls("idM" & j).Visible = False Controls("m" & j) = "" Next j End Sub Function LibMatiereAr(idM As Integer) As String Dim db As Database Dim rst As Recordset Dim sql As String Set db = CurrentDb sql = "select * from Tbl_MatiereArabe where NumMatiere = " & idM & " order by CategorieMatiere asc;" Set rst = db.OpenRecordset(sql) If Not rst.EOF Then LibMatiereAr = UCase(rst.Fields("Matiere")) Else LibMatiereAr = "" End If End Function Private Sub EntêteGroupe0_Format(Cancel As Integer, FormatCount As Integer) majLesCtrl End Sub Private Sub EntêteGroupe0_Print(Cancel As Integer, PrintCount As Integer) majLesCtrl End Sub Private Sub EntêteGroupe0_Retreat() majLesCtrl End Sub Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer) majLesCtrl End Sub Private Sub Report_Activate() majLesCtrl End Sub Private Sub Report_Open(Cancel As Integer) majLesCtrl End Sub Private Sub Report_Page() majLesCtrl End Sub Private Sub ZoneEntêtePage_Format(Cancel As Integer, FormatCount As Integer) majLesCtrl End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager