boucle "while" dans un sous-formulaire
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:
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 !
Un grans Merci pour cet exemple que j'ai récupéré et adapté pour ma base
:?:?
Citation:
Envoyé par
philebaucis
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:
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 !