melleweb
Messages postés9Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention28 juin 2007
-
28 juil. 2006 à 10:47
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
28 juil. 2006 à 12:08
salut,j'ai un petit probleme avec une fonction aléatoire qui permet d'extraire des différents enregistrements(le nombre est déterminé par l'utilisaleur) d'une façon aléatoires et les mettre dans une msflexgrid,j'ai procédé avec ce code:
For i = 0 To b - 1
Randomize
a = Int((n * Rnd) + 1)
"""""avec n c'est Rscal.Recordcount"""""""
RsCal.Move (a)
MSFlexGrid1.AddItem RsCal(0) & vbTab & RsCal(1) & vbTab & RsCal(2) & vbTab & RsCal(3) & _
vbTab & RsCal(4) & vbTab & RsCal(5) & vbTab & RsCal(6)
Next i
End If
le probleme c'est au cour de la lecture boucle,il m'affiche un message
d'ereur, qui dir(BOF ou EOF est egal a true ,ou l'enregistrement actuel a été suprimé .....)
sachant que la valeur de "a" vari just dans l'intervale des valeurs existantes
merci d'avance pour votre aide.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 28 juil. 2006 à 12:08
Salut,
Premièrement, le Randomize doit être écrit une seule fois, donc à
l'extérieur de la boucle ou encore au Form_Load. C'est un appel pour
démarrer le "générateur" de nombres aléatoires.
Pour l'erreur, j'imagine que le numéro généré par Rnd() détermine un
Index qui est inexistant dans ta table. Si tu as 10 enregistrements et
que Rnd() te retourne 11, ça va te donner un enregistrement inexistant.
Il faut donc vérifier que l'enregistrement existe avant de l'inscrire dans ta MsFlexGrid.