Problème de déplacement dans une table

cs_popo51 Messages postés 38 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 6 juin 2006 - 6 juin 2006 à 10:21
cs_popo51 Messages postés 38 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 6 juin 2006 - 6 juin 2006 à 11:01
Bonjour à tous, voila j'expose mon pb :

Je désire parcourir ma table a l'aide de recordset.MovePrevious et recordset.MoveNext
le problème c'est qu'avec le code actuelle je n'ais que l'enregistrement précédant et pas ceux d'avant !! Bisard

Private Sub Command1_Click()
If rSuivPre.BOF = False Then       'test si début de fichier
  rSuivPre.MoveLast                  'déplacement vers fin du fichier
End If
rSuivPre.MovePrevious            'déplacement d'un cran vers l'arrièreIf rSuivPre.BOF True Then      'test si début de fichier> plus rien a lire
  MsgBox "Plus d'enregistrement précédant"
  Exit Sub
End If
'affichage
Text4.Text = rSuivPre.Fields!Date
Text5.Text = rSuivPre.Fields!NumOf
Text6.Text = Format((rSuivPre.Fields!Compteur), "# ##0")
Text7.Text = rSuivPre.Fields!Format
End Sub

donc lors de la première pass ca fonctionnne mais losrque je ve effectuer une nouvelle passe rSuivPre.BOF reste a False alors que j'ais bien fait rSuivPre.MovePrevious ce qui fait que je ne comprend pas!!

Merci de votre aide.

4 réponses

cs_funseb Messages postés 154 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 28 janvier 2010 1
6 juin 2006 à 10:34
Salut, c'est normal, en faisant if rSuivPre.BOF = False ... tu met à la fin du fichier et après tu recules avec rSuivPre.MovePrevious, donc quand il reclique, ton rSuivPre.BOF est toujours égale à False et il replace donc tjs à la fin du fichier !

clac-clac
0
cs_popo51 Messages postés 38 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 10:42
Ok d'accord merci mais dans ce cas comment je pe faire pour me déplacé trankilement dans ma table tt en laissant les bornes .BOF et .EOF ?
0
cs_funseb Messages postés 154 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 28 janvier 2010 1
6 juin 2006 à 10:47
le plus simple est de gerer 2 boutons, 1 pour suivant, 1 pour précédent !
dans le précedent :

If rSuivPre.BOF = True Then
  MsgBox "Plus d'enregistrement précédant"
boutonprec.enabled = false
  Exit Sub
End If

et dans le suivant :

If rSuivPre.EOF = True Then

  MsgBox "Plus d'enregistrement suivant"
 boutonsuiv.enabled = false

  Exit Sub

End If

clac-clac
0
cs_popo51 Messages postés 38 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 6 juin 2006
6 juin 2006 à 11:01
Oui bien sur c'est ce que je fait, j'utilise deux bouttons mais dans chaqu'un des bouttons je doit réalisé un affichage de chaqu'un des champs de ma table en fonction de mon recordset c'est a dire : click en the button, test si fin du fichier (car j'ais une commande sql qui m'ordonne ma table en asc) sinon déplacement fin de fichier (rSuivPre.MoveLast), déplacement de l'enregistrement en cours en arrière affichage et bien sur si je suis au début du fichier (MsgBox "plus d"nregistrement précédant" )

Voila et donc j'en suis la :
Private Sub Command1_Click()
If rSuivPre.BOF = True Then
  MsgBox "Plus d'enregistrement précédant"
  Exit Sub
End If
If rSuivPre.BOF = False Then
  rSuivPre.MoveLast
End If
rSuivPre.MovePrevious
Text4.Text = rSuivPre.Fields!Date
Text5.Text = rSuivPre.Fields!NumOf
Text6.Text = Format((rSuivPre.Fields!Compteur), "# ##0")
Text7.Text = rSuivPre.Fields!Format
End Sub
et comme le .BOF et tj a false il me ré-affiche les même champs ^^ je ne sais pas ce que je doit mètre comme condition pour faire le .MoveLast !! en gro
0
Rejoignez-nous