Moveprevious et movenext bloque

lil_adriano Messages postés 42 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 16 juin 2008 - 10 juin 2008 à 20:01
lil_adriano Messages postés 42 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 16 juin 2008 - 11 juin 2008 à 03:20
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

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
10 juin 2008 à 21:25
...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.
1
cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
10 juin 2008 à 20:21
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
0
lil_adriano Messages postés 42 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 16 juin 2008
10 juin 2008 à 20:27
 slt  megafan merci d'avoir repondu aussi vite!! j'utilise bien access je vais tester ton qe que tu ma dis merci.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
10 juin 2008 à 20:33
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lil_adriano Messages postés 42 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 16 juin 2008
10 juin 2008 à 21:18
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
0
lil_adriano Messages postés 42 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 16 juin 2008
10 juin 2008 à 23:53
ben justement je clique et je re-clique ca refait la meme chose ca avance d'un pas seulement
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
11 juin 2008 à 00:45
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.     
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
11 juin 2008 à 00:59
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.
0
lil_adriano Messages postés 42 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 16 juin 2008
11 juin 2008 à 01:43
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)
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
11 juin 2008 à 02:57
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.
0
lil_adriano Messages postés 42 Date d'inscription vendredi 26 janvier 2007 Statut Membre Dernière intervention 16 juin 2008
11 juin 2008 à 03:20
ben ca me marque pour les deux 0/-1
0
Rejoignez-nous