Bonjour,
J'ai créé un formulaire sous Access 2003, VBA 6.3, Windows XP professionel qui s'appelle "F_Principal". Dedans, il y a une zone de texte "Texte1", un bouton "Commande30" et un sous-formulaire "SF_Test", dont les champs sont les n° de commande (champ numérique) et les prestations (champ texte).
Lorsque j'appuie sur le bouton, je souhaite réaliser une boucle qui va chercher le champ prestation égal au texte tapé dans la zone "Texte1" et qui la remplace par le texte "Bonjour".
Mon code est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Commande30_Click()
Me.SF_Test.Form.Recordset.MoveFirst
Do While Forms!F_Principal!SF_Test![Numéro de commande] > 0
Dim c As String
c = Me.Texte1
    If Forms!F_Principal![SF_Test]![prestation] = c Then
    Forms!F_Principal![SF_Test]![prestation] = "Bonjour !"
    Else
End If
Me.SF_Test.Form.Recordset.MoveNext
Loop
End Sub
En testant, le message d'erreur "Erreur d'exécution '3021': Aucun enregistrement en cours apparaît." et la ligne Me.SF_Test.Form.Recordset.MoveNext est surlignée en jaune
En essayant le même code dans un formulaire (et non plus un sous-formulaire), le code fonctionne bien.
Merci beaucoup de votre aide !