Problème Do Until .EOF Loop
Bonjour,
J'essaie de faire une boucle qui me permette d'utiliser un recordset et d’arrêter la boucle lorsque l'on arrive à la fin des valeurs.
Je veux utiliser un champs du recordset pour faire une sélection dans une requête du type SELECT .... WHERE Champ1 = recordset(Champ1)
Pour débuger ma requête j'essaie de la simplifier en faisant apparaitre une valeur dans un objet de formulaire.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Private Sub Test_Click()
Dim SQL As String
Dim Req As Recordset
Dim VarTest As String
SQL = "SELECT [T_Client_Acces].[ID_Client], [T_Client_Acces].[ID_Segment_Client] FROM [T_Client_Acces]"
Set Req = CurrentDb.OpenRecordset(SQL)
Req.MoveFirst
Do Until Req.EOF
Req.MoveNext
VarTest = Req("[ID_Client]")
Lieu = VarTest
Loop
End Sub |
Lorsque j'applique ce code, j'obtiens bien l'affichage de la dernière valeur de ma liste dans mon objet de formulaire.
Mais il apparait une fenêtre erreur:
Erreur d'exécution '3021': Aucun enregistrement en cours
le debug étant sur: VarTest = Req("[ID_Client]")
Par contre lorsque je rajoute dans mon code un
Code:
1 2 3 4
|
If VarTest = 49 Then
Exit Do
End If |
J'obtiens l'affichage de ma dernière valeur qui est mon enregistrement sans fenètre erreur, ou tout autre valeur que je met dans le VarTest = ...
Étant donné que cette boucle sera utilisée dans d'autres boucles j'aurais besoin de vos conseils pour corriger cette erreur.
J'ai aussi essayé les syntaxes suivantes:
Code:
Do While not Req.EOF ... loop
Code:
Do Until Req.EOF = true ... loop
Code:
1 2 3 4 5
| Do
If Not Req.EOF = true Then
...
End if
Loop |
Qui me font tomber sur la même erreur.
Code:
Do While not Req.EOF(1) ... loop
Code:
Do Until Req.EOF(1) ... loop
Me donne une autre erreur: erreur de compilation nombre d'arguments incorrect ou affectation de propriété incorrecte.
Mais je ne trouve pas ou est l'erreur.
Bien cordialement.
Julien