salut,
j'ai une base de donnees qui fait la gestion des etudiants et des cours. pour un etudiant il peut exister de 0 a plusieurs cours.
j'ai un formulaire independant qui affiche les informations pour un etudiant donner ce formulair fonctionne tres bien. cependant le sous formulaire independent cours qui affiche les cours pour un etudiant enfonction du numero etudiant ne fonctionne pas correctement, meme s'il existe plusieurs enregistrements pour cet etudiant dans la table cours, le sous formulair affiche seulement le premier enregistrement. j'ai utilise plusieurs moyens mais rien ne marche.
je vous prie m'aider a trouver une solution.
voici les differents codes utilizes:
j'ai inserer la base d'exemple en piece jointe.
Option Compare Database
Option Explicit
Dim s As String
Dim rs As DAO.Recordset 'sous form
Dim rsDb As DAO.Database
0)
Sub AfficherDonnees()
s = "SELECT cours.* FROM Cours WHERE NoEtud=" & Me!NoEtu & ";"
Set rs = rsDb.OpenRecordset(s, dbOpenDynaset)
If Not rs.EOF Then
'remplissage des champs du sous formulaire
[sfCours].Form!NoCours = rs("NoCours")
[sfCours].Form!NomC = rs("NomC")
[sfCours].Form!DateC = rs("DateC")
[sfCours].Form!NoEtud = rs("NoEtud")
Else
[sfCours].Form!NoCours = ""
[sfCours].Form!NomC = ""
[sfCours].Form!DateC = ""
[sfCours].Form!NoEtud = ""
End If
End sub
Private Sub Form_Load()
Set rsDb = CurrentDb
AfficherDonnees
End Sub
1 'sous form
strFilter = "NoEtud = " & Me!NoEtu
'remplissage des champs du sous formulaire
[sfCours].Form!NoCours = DLookup("NoCours", "Cours", strFilter)
[sfCours].Form!NomC = DLookup("NomC", "Cours", strFilter)
[sfCours].Form!DateC = DLookup("DateC", "Cours", strFilter)
[sfCours].Form!NoEtud = DLookup("NoEtud", "Cours", strFilter)
2 ‘
Set rs = rsDb.OpenRecordset("Select * from Cours WHERE Noetud=1", dbOpenSnapshot)
If rs.RecordCount > 0 Then
[sfCours].Form!NoCours = rs("NoCours")
[sfCours].Form!NomC = rs("NomC")
[sfCours].Form!DateC = rs("DateC")
[sfCours].Form!NoEtud = rs("NoEtud")
End If
3e
s = "SELECT * FROM Cours WHERE NoEtud=" & Me.NoEtu & ";"
Set rs = rsDb.OpenRecordset(s, dbOpenDynaset, dbSeeChanges)
If rs.EOF = False Then 'si EOF est False, c'est qu'il y a une réponse: on signale le probleme
'remplissage des champs du sous formulaire
[sfCours].Form!NoCours = rs("NoCours")
[sfCours].Form!NomC = rs("NomC")
[sfCours].Form!DateC = rs("DateC")
[sfCours].Form!NoEtud = rs("NoEtud")
Else
[sfCours].Form!NoCours = ""
[sfCours].Form!NomC = ""
[sfCours].Form!DateC = ""
[sfCours].Form!NoEtud = ""
End If
4e
Me.sfCours.Form.RecordSource = _
"SELECT Cours.NoCours, Cours.NomC, " & _
"Cours.NoEtud FROM Cours " & _
"WHERE (((Cours.NoEtud) =" & strSelect & "))"
Set rs = Me.sfCours.Form.Recordset
If Not rs.EOF Then
Me.sfCours.Form.NoCours = _
rs!NoCours
Me.sfCours.Form.NomC = _
rs!NomC
Me.sfCours.Form.NoEtud = _
rs!NoEtud
End If
de grace, aidez moi svp, je suis coince.
Partager