Bonsoir Messieurs.
j'ai un problème. j'ai parcouru le site de long en large mais je n'ai pas encore trouvé la solution. cela fait des mois.
J'ai un formulaire DEVOIRS et un sous-formulaire COMPOSER
DEVOIRS(Num_Dev, Cls,...) et COMPOSER(Mle_Elv, Num_Dev, Note). Cls est le code de la classe et une liste deroulante.
je veux que qu'après la mise la mise à jour de Cls, qu'il me rempli le sous-formulaire COMPOSER avec la liste des eleves (mle) et Num_Dev.
j'ai proceder de deux manières mais aucune ne marche. en faite il ajoute le nombre de lignes des élèves mais avec des #Nom.
1. En rattachant un recordset au sous-formulaire
2. En utilisant l'instruction SQL comme recordsource du sous-formulaire
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 Private Sub Code_Cls_AfterUpdate() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim strSQL As String Dim cl As Recordset Dim cls As Long, dv As Long Set rs = New ADODB.Recordset Set cn = CurrentProject.Connection cls = Form_DEVOIRS.Code_Cls dv = Me![Num_Dev] strSQL = "SELECT ELEVES.Mle_EL," & dv _ & " FROM ELEVES INNER JOIN (CLASSES INNER JOIN INSCRIRE ON CLASSES.[Code_Cls] = INSCRIRE.[Code_Cls]) " & _ "ON ELEVES.[Mle_EL] = INSCRIRE.[Mle_elv] WHERE (((INSCRIRE.Code_Cls)= " & cls & "));" rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic, adCmdText 'MsgBox rs.GetString, , "Liste des élèves de la classe " Form_DEVOIRS.COMPOSERSF.Form.Recordset.AddNew Set Forms("DEVOIRS").COMPOSERSF1.Form.Recordset = rs rs.Close cn.Close Set cn = Nothing Set rs = Nothing End Sub
Merci d'avance.
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 Private Sub Code_Cls_AfterUpdate() Dim strSQL As String Dim cls As Long, dv As Long cls = Form_DEVOIRS.Code_Cls End If dv = Me![Num_Dev] strSQL = "SELECT ELEVES.Mle_EL," & dv _ & " FROM ELEVES INNER JOIN (CLASSES INNER JOIN INSCRIRE ON CLASSES.[Code_Cls] = INSCRIRE.[Code_Cls]) " & _ "ON ELEVES.[Mle_EL] = INSCRIRE.[Mle_elv] WHERE (((INSCRIRE.Code_Cls)= " & cls & "));" Form_DEVOIRS.COMPOSERSF1.Form.RecordSource = strSQL End Sub
Partager