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)

jeudi 7 février 2002 à 17:14:49 | Loop

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

jeudi 7 février 2002 à 18:04:42 | Re : Loop

PatriceVB

Administrateur CodeS-SourceS
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

vendredi 8 février 2002 à 09:51:16 | Re : Loop

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




Cette discussion est classé dans : end, recordset, rs, integer, loop


Répondre à ce message

Sujets en rapport avec ce message

Loop [ par Michele ] BonjourJe voudrais effectuer une boucle du genre:Dim Somme As IntegerIf Option4.Value = True Then With RSDo While Not RS.EOF Somme = RS! Somme RS! So loop [ par Michele ] BonjourJe voudrais effectuer une boucle du genre:Dim Somme As IntegerIf Option4.Value = True ThenWith RSDo While Not RS.EOFSomme = RS! SommeRS! Somme Changement grace aux dates sur un recordset [ par cherif747 ] bonjour tout le monde,Je suis entrain de fr un prog pour mon club de foot. Il souhaiterait que grâce à un bouton de commande, tous les joueurs passent Recordset "incompatibilité de type" [ par vanyou ] Bonjour, j'ai un problème d'"incompatibilité de type" à mon recordsetPrivate Sub Commande46_Click() Dim num_clt As Integer num_clt = CInt(Me.num problème de transfert entre feuille [ par gazoute ] Mon problème est celui-ci :J?ai une feuille Frm1 qui me permet d?inscrire le nom, le prénom, l?adresse et la ville d?une personne ; puis de sauvegarde cloner un recordset [ par lezardjet ] Bonjourje veus recopier l'intégralité d'une table dans une autre table.... sous access 2000je me suis inspiré de ce ke j'ai trouvé sur ces forum.. mai pb de recordset avec date [ par elodie1511 ] voilà au niveau de la condition if , il plante et me met comme erreur:erreur d'execution 3021 pas d'enregistrement courant le code:Do While rs.EOF = F data_validate [ par tedparker ] Queqtion sans doute très con mai comment utitlise t'on un data_validate?Voila mon code:Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)I etats avec datareport [ par kazimir ] bonjour à tous,j'ai trouvé ici même un petit bout de code bien sympathique: http://www.vbfrance.com/code.aspx?ID=2273j'ai adapté ce code à ma sauce, m PB à la déclaration d'un recordset ! [ par doomVB ] DoomVBSalut tout le monde,J'essaie de déclarer un recordset puis de l'instancier et c'est là que ça coince !Voilà mon code : Dim DB As Database


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,702 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.