Moveprevious et movenext bloque

Signaler
Messages postés
42
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
16 juin 2008
-
Messages postés
42
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
16 juin 2008
-
slt tous le monde,dois une fois de plus faire appel a vos connassances .
j'ai un probleme avec movenext ,moveprevious.
j'explique, je souhaite faire deux boutons qui me permétront de naviguer parmis les enregistrement par 'suivant' ou 'precedent' .
je suis arrive a faire le bouton qui permet d'afficher le premier enregistrement mais pas les autres.pour les autre ca me dit
pour next ca passe directement a la fin et pour previous ca passe directment au premier, mais c'est qu'il me manque un ti code que je trouve pas.
Donc si quelqu'un a une idée pour faire de visualiser un par un se serai super

voici le code pour next
 Do While Not rs.EOF
          
            TextBox3.Text = rs.Fields("nom").Value
            TextBox4.Text = rs.Fields("adresse").Value
            TextBox5.Text = rs.Fields("ville").Value
            TextBox6.Text = rs.Fields("cp").Value
            TextBox7.Text = rs.Fields("tel").Value
            TextBox8.Text = rs.Fields("n°").Value
           rs.moveNext()
  Loop

11 réponses

Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
...après il faut que tu re-cliques pour qu' il avance 
encore d'un enregistrement.
S' il n' avance plus après, c' est que tu es en fin de fichier.c à d sur le dernier.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
389
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
23 septembre 2016
2
salut,
Avec quel SGBD ?
Si c'est access j'avais entendu parler d'un bug comme cela pour le régler il faut faire avant ta boucle rs.movelast pui rs.movefirst.
@+
Megafan
Messages postés
42
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
16 juin 2008

 slt  megafan merci d'avoir repondu aussi vite!! j'utilise bien access je vais tester ton qe que tu ma dis merci.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
Pourquoi une boucle ?
Normal que ça passe directement à la fin.C' est ton code qui lui dit de le faire.
Alors qu' il suffit de mettre

Sub cmdNext_Click()
  If Not rs.Eof Then rs.MoveNext
End Sub

Sub cmdPrevious_Click()
  If Not rs.Bof Then rs.MovePrevious
End Sub

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
42
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
16 juin 2008

resalut effectivement une boucle c'etait une mauvaise idee.
mais le code que tu ma donne avance d'un enregistrement apres ca n'avance plus
Messages postés
42
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
16 juin 2008

ben justement je clique et je re-clique ca refait la meme chose ca avance d'un pas seulement
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Re_salut,
Et tu veux quoi au juste ?
Naviguer automatiquement ?
Beh, si c' est ce que tu veux, utuilises un Timer dont tu définiras l' interval selon l' impulsion que tu veux donner à la cadence de la naviguation.
Dans cet exemple tu utiliseras deux Timers.Un pour Next et un pour Previous.

Sub cmdNext_Click()
   TimerPrevious.Enabled=False
   TimerNext.Enabled=True
End Sub



Sub cmdPrevious_Click()
  TimerNext.Enabled=False
  TimerPrevious.Enabled=True
End Sub



Sub TimerNext_Timer()
   If Not rs.Eof Then rs.MoveNext
   If rs.Eof Then TimerNext.Enabled=False
End Sub



Sub TimerPrevious_Timer()
 If Not rs.Bof Then rs.MovePrevious
 If rs.Bof Then TimerPrevious.Enabled=False
End Sub










 






<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.     
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Optimisation pour éviter de cliquer deux fois sur le même
bouton (pas si grave, mais ...pour faire beau !)
Et aussi ajouter un bouton Stop pour pouvoir arrêter
la progreesion quand on veut.




Sub cmdNext_Click()
   TimerPrevious.Enabled=False
   TimerNext.Enabled=True
   cmdNext.Enabled=False
End Sub


Sub cmdPrevious_Click()
  TimerNext.Enabled=False
  TimerPrevious.Enabled=True
   cmdPrevious.Enabled=False
End Sub


Sub TimerNext_Timer()
   If Not rs.Eof Then rs.MoveNext
   If rs.Eof Then
     TimerNext.Enabled=False
     cmdNext.Enabled=True
  End If
End Sub


Sub TimerPrevious_Timer()
 If Not rs.Bof Then rs.MovePrevious
 If rs.Bof Then
    TimerPrevious.Enabled=False
    cmdPrevious.Enabled=True
 End If
End Sub


Sub cmdStop_Click
   TimerNext.Enabled=False
   cmdNext.Enabled=True
   TimerPrevious.Enabled=False
   cmdPrevious.Enabled=True
End Sub





<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
42
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
16 juin 2008

re-salut libre-max merci de me proposer ceci mais ca pas ca que je veux.

ce que je veux c'est  je clique sur suivant un enregistrement apparait, ensuite je reclique le suivant apprait ainsi de se suite.

mais moi quand je fais ca je passe bien au suivant a l'enregistrement  2 mais apres kan je clique rien ca ne change pas pourtant j'ai 4 enregistrments et normalement quand c'est arrivé a la fin ca me le dit

mais c pas grave je vais finir par trouve a force de chercher (meme ca fait plus de 3jours que ces boutons me contrarie)
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Alors il n' y a pas de raisn pour que le premier code ne fonctionnes pas.
Es_tu sûr qu' au départ tu te positionnes au premier?

Ajoutes un label, et au lancement tu fais:
rs.MoveFirst
Label.Caption=rs.AbsolutePosition+1 & " / " & rs.RecordCount

Et ajoutes la même ligne dans cmdNext_Click et cmdPrevious_Click
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
42
Date d'inscription
vendredi 26 janvier 2007
Statut
Membre
Dernière intervention
16 juin 2008

ben ca me marque pour les deux 0/-1