Problème boucle VBA (access) sur ".movenext&q
Résolu/Fermé
A voir également:
- Problème boucle VBA (access) sur ".movenext&q
- Nokia ont g-010g-q - Forum câblage
- Sur mon clavier le a devient q ✓ - Forum Matériel & Système
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
7 réponses
pardon pour la faute de frappe, c'est ".movenext', mais s'il y a d'autre syntahxe je suis preneur.
Merci encore pour vos futures réponses, je l'espère/
allé courage les gars ...
;-)
Merci encore pour vos futures réponses, je l'espère/
allé courage les gars ...
;-)
Essaie plutôt cela et compare avec ton code:
Dim rstSubFormInvoice As DAO.Recordset
Set rstSubFormInvoice = Form_SubFormInvoices.RecordsetClone
With rstSubFormInvoice
.movefirst
Do Until .EOF
If Form_SubFormInvoices.Txt_Ammount.Text <> "" Then
W_AmountInvoiceSite = Form_SubFormInvoices.Txt_Ammount
Else
W_AmountInvoiceSite = "123"
End If
.MoveNext
Loop
End With
Beaucoup plus propre et lisible comme code! ;-)
Dim rstSubFormInvoice As DAO.Recordset
Set rstSubFormInvoice = Form_SubFormInvoices.RecordsetClone
With rstSubFormInvoice
.movefirst
Do Until .EOF
If Form_SubFormInvoices.Txt_Ammount.Text <> "" Then
W_AmountInvoiceSite = Form_SubFormInvoices.Txt_Ammount
Else
W_AmountInvoiceSite = "123"
End If
.MoveNext
Loop
End With
Beaucoup plus propre et lisible comme code! ;-)
Dim rstSubFormInvoice As DAO.Recordset
Set rstSubFormInvoice = Form_SubFormInvoices.RecordsetClone
With rstSubFormInvoice
.movefirst
Do UNTIL .EOF
If Form_SubFormInvoices.Txt_Ammount.Text <> "" Then
W_AmountInvoiceSite = Form_SubFormInvoices.Txt_Ammount
Else
W_AmountInvoiceSite = "123"
End If
.MoveNext
Loop
End With
Set rstSubFormInvoice = Form_SubFormInvoices.RecordsetClone
With rstSubFormInvoice
.movefirst
Do UNTIL .EOF
If Form_SubFormInvoices.Txt_Ammount.Text <> "" Then
W_AmountInvoiceSite = Form_SubFormInvoices.Txt_Ammount
Else
W_AmountInvoiceSite = "123"
End If
.MoveNext
Loop
End With
merci, le code fonctionne, mais j'ai le meme problème :
ma variable recoit toujours la valeur du premier champ et ne passe jamais aux suivants.
il boucle autant de fois qu'il y a d'enregistrement, mais ne me donne que la premiere valeur du champ "txt_ammount"
merci quand meme, si tu as une autre idée. je suis preneur.
ma variable recoit toujours la valeur du premier champ et ne passe jamais aux suivants.
il boucle autant de fois qu'il y a d'enregistrement, mais ne me donne que la premiere valeur du champ "txt_ammount"
merci quand meme, si tu as une autre idée. je suis preneur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je pensais pouvoir faire une boucle FOR sur mon recortset avec un indice (I), et l'incrémenter de 1 a chaque fois que passe dans la boucle, man je ne connais pas la syntaxe pour spécifier au recorset que je veux la valeur du champ (I).
genre :
recordeset.fields("champ"(I)).text
je sais pas si tu vois ce que je veux dire...
merci
genre :
recordeset.fields("champ"(I)).text
je sais pas si tu vois ce que je veux dire...
merci
Change peut-être ton if
Au lieu de faire référence à un controle de ton formulaire, récupère l'enregistrement de ton recordset
If not (.Txt_Ammount = vbnullstring) Then
W_AmountInvoiceSite = .Txt_Ammount
Else
W_AmountInvoiceSite = "123"
End If
Remplace le txt_ammount par le nom du champs de ton recordset
Le UNTIL c'est pour parcourir le recordset JUSQU'A EndOfFile
Le WHILE que tu avais mis c'est pour parcourir le recordset TANT QUE EOF
Puisque cette condition n'est pas remplie il ne bouclait pas, si tu veux garder le while alors "While Not .EOF"
Le With permet d'associer plusieurs méthodes et/ou propriétés à un même objet, puisque tu fais référence à l'abjet dans le with, tu ne dois plus répéter l'objet avant sa propriété ou sa méthode:
MAUVAIS:With rstSubFormInvoice
Do while rstSubFormInvoice.EOF
BON:With rstSubFormInvoice
Do until .EOF
Au lieu de faire référence à un controle de ton formulaire, récupère l'enregistrement de ton recordset
If not (.Txt_Ammount = vbnullstring) Then
W_AmountInvoiceSite = .Txt_Ammount
Else
W_AmountInvoiceSite = "123"
End If
Remplace le txt_ammount par le nom du champs de ton recordset
Le UNTIL c'est pour parcourir le recordset JUSQU'A EndOfFile
Le WHILE que tu avais mis c'est pour parcourir le recordset TANT QUE EOF
Puisque cette condition n'est pas remplie il ne bouclait pas, si tu veux garder le while alors "While Not .EOF"
Le With permet d'associer plusieurs méthodes et/ou propriétés à un même objet, puisque tu fais référence à l'abjet dans le with, tu ne dois plus répéter l'objet avant sa propriété ou sa méthode:
MAUVAIS:With rstSubFormInvoice
Do while rstSubFormInvoice.EOF
BON:With rstSubFormInvoice
Do until .EOF
oui exactement, je viens de trouvé!!! merci
cette syntaxe fonctionne :
With rstSubFormInvoice
.movefirst
Do UNTIL .EOF
If rstSubFormInvoice.fields(2) <> "" Then
W_AmountInvoiceSite = rstSubFormInvoice.fields(2)
Else
W_AmountInvoiceSite = "123"
End If
.MoveNext
Loop
End With
merci beaucoup tu m'as mis sur la piste
a une prochaine et bonne continuation ;-)
cette syntaxe fonctionne :
With rstSubFormInvoice
.movefirst
Do UNTIL .EOF
If rstSubFormInvoice.fields(2) <> "" Then
W_AmountInvoiceSite = rstSubFormInvoice.fields(2)
Else
W_AmountInvoiceSite = "123"
End If
.MoveNext
Loop
End With
merci beaucoup tu m'as mis sur la piste
a une prochaine et bonne continuation ;-)