J'utilise la fonction Randomizer pour s=E9lectionner un nbre=20
d'enregistrement al=E9atoire dans une table voici le code:
"SELECT top n enregistrements.......AND Randomizer() =3D 0=20
order by rnd(isnull(Table.Champs) * 0 + 1) ;"
Voici le code de la function randomizer:
Function Randomizer() As Integer
Static AlreadyDone As Integer
If AlreadyDone =3D False Then Randomize: AlreadyDone =3D=20
True
Randomizer =3D 0
End Function
Or la function randomizer me renvoie des doublons???
Quelqu'un connaitrait-il la solution pour me renvoyer un=20
r=E9sultat sans doublon?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel Carollo
Bonjour Doft!
La source de vos enregistrements contient-elle des doublons? Si c'est le cas, utilisez une requete avec SELECT DISTINCT comme source pour dedoubler les enregistrements. A vue de nez, il n'y a rien dans la fonction randomizer() qui evite les doublons, c'est juste une fonction qui oblige de demarrer le rnd a une valeur differente a chaque appel de la requete.
Le nombre d'enregistrments n'est pas aleatoire, puisqu'il est n. C'est seulement l'ordre de ces enregistrments qui est aleatoire (dans la mesure de la fonction rnd(), qui n'est pas ce qu'il y a de mieux, mais qui peut etre suffisante). S'il y a des doublons, il vont tout simplement ressortir, dans le desordre, qui est le meme que dans l'ordre, vu que c'est les memes... (enfin bon, je m'egarre).
Bonne continuation.
-- Daniel :-)
Computing Technologies International - www.computing-tech.com - We provide solutions...
"Doft" wrote in message news:021401c37126$eecc53d0$ Re bonjour!
J'utilise la fonction Randomizer pour sélectionner un nbre d'enregistrement aléatoire dans une table voici le code:
"SELECT top n enregistrements.......AND Randomizer() = 0 order by rnd(isnull(Table.Champs) * 0 + 1) ;"
Voici le code de la function randomizer: Function Randomizer() As Integer Static AlreadyDone As Integer If AlreadyDone = False Then Randomize: AlreadyDone True Randomizer = 0 End Function
Or la function randomizer me renvoie des doublons??? Quelqu'un connaitrait-il la solution pour me renvoyer un résultat sans doublon?
Meci de votre aide!
Bonjour Doft!
La source de vos enregistrements contient-elle des doublons? Si c'est le
cas, utilisez une requete avec SELECT DISTINCT comme source pour dedoubler
les enregistrements. A vue de nez, il n'y a rien dans la fonction
randomizer() qui evite les doublons, c'est juste une fonction qui oblige de
demarrer le rnd a une valeur differente a chaque appel de la requete.
Le nombre d'enregistrments n'est pas aleatoire, puisqu'il est n. C'est
seulement l'ordre de ces enregistrments qui est aleatoire (dans la mesure de
la fonction rnd(), qui n'est pas ce qu'il y a de mieux, mais qui peut etre
suffisante). S'il y a des doublons, il vont tout simplement ressortir, dans
le desordre, qui est le meme que dans l'ordre, vu que c'est les memes...
(enfin bon, je m'egarre).
Bonne continuation.
--
Daniel :-)
Computing Technologies International - www.computing-tech.com - We
provide solutions...
"Doft" <Doft26@caramil.com> wrote in message
news:021401c37126$eecc53d0$a001280a@phx.gbl...
Re bonjour!
J'utilise la fonction Randomizer pour sélectionner un nbre
d'enregistrement aléatoire dans une table voici le code:
"SELECT top n enregistrements.......AND Randomizer() = 0
order by rnd(isnull(Table.Champs) * 0 + 1) ;"
Voici le code de la function randomizer:
Function Randomizer() As Integer
Static AlreadyDone As Integer
If AlreadyDone = False Then Randomize: AlreadyDone True
Randomizer = 0
End Function
Or la function randomizer me renvoie des doublons???
Quelqu'un connaitrait-il la solution pour me renvoyer un
résultat sans doublon?
La source de vos enregistrements contient-elle des doublons? Si c'est le cas, utilisez une requete avec SELECT DISTINCT comme source pour dedoubler les enregistrements. A vue de nez, il n'y a rien dans la fonction randomizer() qui evite les doublons, c'est juste une fonction qui oblige de demarrer le rnd a une valeur differente a chaque appel de la requete.
Le nombre d'enregistrments n'est pas aleatoire, puisqu'il est n. C'est seulement l'ordre de ces enregistrments qui est aleatoire (dans la mesure de la fonction rnd(), qui n'est pas ce qu'il y a de mieux, mais qui peut etre suffisante). S'il y a des doublons, il vont tout simplement ressortir, dans le desordre, qui est le meme que dans l'ordre, vu que c'est les memes... (enfin bon, je m'egarre).
Bonne continuation.
-- Daniel :-)
Computing Technologies International - www.computing-tech.com - We provide solutions...
"Doft" wrote in message news:021401c37126$eecc53d0$ Re bonjour!
J'utilise la fonction Randomizer pour sélectionner un nbre d'enregistrement aléatoire dans une table voici le code:
"SELECT top n enregistrements.......AND Randomizer() = 0 order by rnd(isnull(Table.Champs) * 0 + 1) ;"
Voici le code de la function randomizer: Function Randomizer() As Integer Static AlreadyDone As Integer If AlreadyDone = False Then Randomize: AlreadyDone True Randomizer = 0 End Function
Or la function randomizer me renvoie des doublons??? Quelqu'un connaitrait-il la solution pour me renvoyer un résultat sans doublon?