begin process at 2008 07 05 15:22:14
1 205 205 membres
181 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Loop [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (Michele)

Loop le 07/02/2002 17:14:49

Michele
Bonjour
j'essaie d'éffectuer plusieurs boucles les unes derriere les autres, mais avec le code qui se trouve ci-dessous la premiere s'effectue bien mais aucunes des autres fonctionnent, le seul moyen que j'ai trouvé pour qu'elles marchent correctement est de fermer et réouvrir le recordset entre elles, mais le seul problème est qu'étant donné que ce programme est prévu pour mettre sur une page web, cela met beaucoup de temps à s'exécuter.
Y-a-t-il une solution pour qu'elles s'exécutent les unes après les autres sans fermer le recordset.
Merci d'avance à celui ou ceux qui me répondront.
Michele

Dim RS As New Recordset
Dim RS1 As New Recordset
Private CN As Connection
Set CN = New Connection
CN.Open "DSN=PointCla"
RS.CursorType = adOpenStatic
RS.CursorLocation = adUseClient
RS.Open "Select * from point WHERE RefJoueur = " & Txtref, CN, adOpenDynamic, adLockOptimistic

Private Function DefSignificative() As Integer
Dim Bonus1 As Integer
Dim Bonus2 As Integer
Dim Bonus3 As Integer
Dim Bonus4 As Integer
If Option2.Value = True Then
If txtDif.Text <= 0 Then
Do While Not RS.EOF
Bonus1 = RS!PointSupUn
RS!PointSupUn = Bonus1 + 1
RS.Update
RS.MoveNext
Loop
End If
End If

If Option2.Value = True Then
If TxtDifDeux <= 0 Then
Do While Not RS.EOF
Bonus2 = RS!PointSupDeux
RS!PointSupDeux = Bonus2 + 1
RS.Update
RS.MoveNext
Loop
End If
End If

If Option2.Value = True Then
If TxtDifTrois <= 0 Then
Do While Not RS.EOF
Bonus3 = RS!PointSupTrois
RS!PointSupTrois = Bonus3 + 1
RS.Update
RS.MoveNext
Loop
End If
End If

If Option2.Value = True Then
If TxtDifQuatre <= 0 Then
Do While Not RS.EOF
Bonus4 = RS!PointSupQuatre
RS!PointSupQuatre = Bonus4 + 1
RS.Update
RS.MoveNext
Loop
End If
End If
End Function

Re : Loop le 07/02/2002 18:04:42

PatriceVB
(Admin CS)
Tu as un petit pb de logique !!!
En effet, tu ne rentre pas dans les autres boucles, puisque tu te situe déjà à la fin de ton recordset !!!!
Il te suffit de rajouter RS.Movefirst après chaque boucle et tout ira bien !!!
@+



-------------------------------
Réponse au message :
-------------------------------

Bonjour
j'essaie d'éffectuer plusieurs boucles les unes derriere les autres, mais avec le code qui se trouve ci-dessous la premiere s'effectue bien mais aucunes des autres fonctionnent, le seul moyen que j'ai trouvé pour qu'elles marchent correctement est de fermer et réouvrir le recordset entre elles, mais le seul problème est qu'étant donné que ce programme est prévu pour mettre sur une page web, cela met beaucoup de temps à s'exécuter.
Y-a-t-il une solution pour qu'elles s'exécutent les unes après les autres sans fermer le recordset.
Merci d'avance à celui ou ceux qui me répondront.
Michele

Dim RS As New Recordset
Dim RS1 As New Recordset
Private CN As Connection
Set CN = New Connection
CN.Open "DSN=PointCla"
RS.CursorType = adOpenStatic
RS.CursorLocation = adUseClient
RS.Open "Select * from point WHERE RefJoueur = " & Txtref, CN, adOpenDynamic, adLockOptimistic

Private Function DefSignificative() As Integer
Dim Bonus1 As Integer
Dim Bonus2 As Integer
Dim Bonus3 As Integer
Dim Bonus4 As Integer
If Option2.Value = True Then
If txtDif.Text <= 0 Then
Do While Not RS.EOF
Bonus1 = RS!PointSupUn
RS!PointSupUn = Bonus1 + 1
RS.Update
RS.MoveNext
Loop
End If
End If

If Option2.Value = True Then
If TxtDifDeux <= 0 Then
Do While Not RS.EOF
Bonus2 = RS!PointSupDeux
RS!PointSupDeux = Bonus2 + 1
RS.Update
RS.MoveNext
Loop
End If
End If

If Option2.Value = True Then
If TxtDifTrois <= 0 Then
Do While Not RS.EOF
Bonus3 = RS!PointSupTrois
RS!PointSupTrois = Bonus3 + 1
RS.Update
RS.MoveNext
Loop
End If
End If

If Option2.Value = True Then
If TxtDifQuatre <= 0 Then
Do While Not RS.EOF
Bonus4 = RS!PointSupQuatre
RS!PointSupQuatre = Bonus4 + 1
RS.Update
RS.MoveNext
Loop
End If
End If
End Function

Re : Loop le 08/02/2002 09:51:16

Michele
Merci pour ta réponse
Bien sur la logique est de revenir au premier enregistrement en utilisant RS.Movefirst mais dans mon cas cela ne fonctionne pas.
Un message d'erreur survient: la ligne n'a pas pu être trouvée pour la mise à jour, certaines valeurs ont peu-être changé depuis leur derniere lecture.
tu vois le probléme n'est pas si simple. as-tu une autre idée ?
Merci A+ Michele



-------------------------------
Réponse au message :
-------------------------------

Tu as un petit pb de logique !!!
En effet, tu ne rentre pas dans les autres boucles, puisque tu te situe déjà à la fin de ton recordset !!!!
Il te suffit de rajouter RS.Movefirst après chaque boucle et tout ira bien !!!
@+



-------------------------------
Réponse au message :
-------------------------------

Bonjour
j'essaie d'éffectuer plusieurs boucles les unes derriere les autres, mais avec le code qui se trouve ci-dessous la premiere s'effectue bien mais aucunes des autres fonctionnent, le seul moyen que j'ai trouvé pour qu'elles marchent correctement est de fermer et réouvrir le recordset entre elles, mais le seul problème est qu'étant donné que ce programme est prévu pour mettre sur une page web, cela met beaucoup de temps à s'exécuter.
Y-a-t-il une solution pour qu'elles s'exécutent les unes après les autres sans fermer le recordset.
Merci d'avance à celui ou ceux qui me répondront.
Michele

Dim RS As New Recordset
Dim RS1 As New Recordset
Private CN As Connection
Set CN = New Connection
CN.Open "DSN=PointCla"
RS.CursorType = adOpenStatic
RS.CursorLocation = adUseClient
RS.Open "Select * from point WHERE RefJoueur = " & Txtref, CN, adOpenDynamic, adLockOptimistic

Private Function DefSignificative() As Integer
Dim Bonus1 As Integer
Dim Bonus2 As Integer
Dim Bonus3 As Integer
Dim Bonus4 As Integer
If Option2.Value = True Then
If txtDif.Text <= 0 Then
Do While Not RS.EOF
Bonus1 = RS!PointSupUn
RS!PointSupUn = Bonus1 + 1
RS.Update
RS.MoveNext
Loop
End If
End If

If Option2.Value = True Then
If TxtDifDeux <= 0 Then
Do While Not RS.EOF
Bonus2 = RS!PointSupDeux
RS!PointSupDeux = Bonus2 + 1
RS.Update
RS.MoveNext
Loop
End If
End If

If Option2.Value = True Then
If TxtDifTrois <= 0 Then
Do While Not RS.EOF
Bonus3 = RS!PointSupTrois
RS!PointSupTrois = Bonus3 + 1
RS.Update
RS.MoveNext
Loop
End If
End If

If Option2.Value = True Then
If TxtDifQuatre <= 0 Then
Do While Not RS.EOF
Bonus4 = RS!PointSupQuatre
RS!PointSupQuatre = Bonus4 + 1
RS.Update
RS.MoveNext
Loop
End If
End If
End Function



Classé sous : end, recordset, rs, integer, loop

Participer à cet échange

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

Snippets en rapport

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS