Recherche aléatoire

Domino - 8 mai 2000 à 22:16
cs_dalila1 Messages postés 1 Date d'inscription vendredi 20 mai 2005 Statut Membre Dernière intervention 20 mai 2005 - 20 mai 2005 à 15:08
Dans un but de contrôle (auditeurs) on me demande de sélectionner (afficher dans un grid ou charger dans un recordset), 3 records provenant d'une table access, le choix devant être fait aléatoirement sans aucune logique.

Que me conseillez-vous ?

4 réponses

Je te conseille d'utiliser les fonctions Randomize et Rnd qui sont générateurs de nombres aléatoires.
Alors le principe est de générer 3 nombres aléatoires et utilser ces 3 nombres pour afficher des recordsets.

Teste l'exemple suivant puis adapte le à tes besoins.

Dans un nouveau projet ajoute un bouton cmdGo et 3 labels lblDefil 0,1,2 puis insère le code suivant, n'oublie pas la référence DAO...

c'est parti!
########################
Private Sub cmdGo_Click()
Dim DB As Database
Dim QS As String
Dim Rs As Recordset
Dim rm As Integer

'ouvre la base de données JE.mdb
Set DB = OpenDatabase("C:\mes documents\JE3001.mdb")
'ouvre la table equipe qui contient 2 champs : codeequipe et libelleequipe
QS = "select * from equipe"
Set Rs = DB.OpenRecordset(QS)
If Rs.RecordCount > 0 Then
'si la table n'est pas vide se placer au dernier enregistrement pour pouvoir récupérer
'le nombre d'enregistrements de la table
Rs.MoveLast
'initialise le générateur de nombres aléatoires
Randomize
'trouve un nombre aléatoire compris entre 1 et recordcount
rm = Int((Rs.RecordCount * Rnd) + 1)
'place l'enregistrement courant à ce nombre
Rs.AbsolutePosition = rm
'affiche dans le label lblDefil(0) le contenu de l'enregistrement numéro rm
lblDefil(0) = Rs("Libelleequipe")
'refait
Randomize
rm = Int((Rs.RecordCount * Rnd) + 1)
Rs.AbsolutePosition = rm
lblDefil(1) = Rs("Libelleequipe")
'refait
Randomize
rm = Int((Rs.RecordCount * Rnd) + 1)
Rs.AbsolutePosition = rm
lblDefil(2) = Rs("Libelleequipe")
End If
Rs.Close
Set Rs = Nothing
DB.Close
Set DB = Nothing
End Sub
########################
si t'as pas compris quelque chose n'hésite pas à me le demander.
Reponds-moi pour me dire le resultat.
0
Si, j’ai compris. Sauf l’utilité de Randomize mais bon.
Le but était de garder 3 records au hasard dans un fichier.

Grace à tes bons conseils, j’ai mis sur pied un truc qui fonctionne.
Voici une partie du code

Set gJET = CreateWorkspace("", "admin", "", dbUseJet)
Set gMDB = gJET.OpenDatabase(gstrDB)
‘Je compte les records
Set rsNbr = gMDB.OpenRecordset("select Count(*) as Nbr from Table")

‘Je cherche nombres aléatoiresDo While intAléa(1) intAléa(2) Or intAléa(2) intAléa(3) Or intAléa(1) = intAléa(3)
For intI = 1 To 3
intAléa(intI) = Int((rsNbr("Nbr")) * Rnd + 1)
Next intI
Loop

'Suppression des records non tirés au sort
strCommand = "select * from Result
Set rsDepart = gMDB.OpenRecordset("select * from Table")
intNbr = 0
Do While Not rsDepart.EOF
intNbr = intNbr + 1 If Not (intNbr intAléa(1) Or intNbr intAléa(2) Or intNbr = intAléa(3)) Then
rsDepart.Delete
End If
rsDepart.MoveNext
Loop
rsDepart.Close
rsNbr.Close
gMDB.Close
0
Zil0k Messages postés 51 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 27 octobre 2004 1
9 juin 2003 à 17:34
Non c'est impossible, il faut obligatoirement avoir le framework .NET d'installé sur ta machine.

(dsl pour le post vide juste avant, g vraiment du mal avec ce forum j'm'y suis tjrs pas fait)

>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > :question) Je voulais savoir si il était possible de lancer une application compilée en c#.net sans avoir la framework.net d'installée sur son ordinateur, qu'on puisse lancer l'appli juste avec les dll nécéssaires :question)
> >
> > car je n'ai pas la framework d'installée et je n'ai pas réussi a lancer des exe compilés a partir d'un code c#.net
> >
> > un peu comme les appli vb6 qui fonctionnent avec les runtimes msvbvm60.dll et vb6fr.dll
> >
> > :big) merci :big)
> > @+
>
0
cs_dalila1 Messages postés 1 Date d'inscription vendredi 20 mai 2005 Statut Membre Dernière intervention 20 mai 2005
20 mai 2005 à 15:08
bonjour à tous j'ai bien aimé savoir comment fonctionne random et comment faire le parcours de fichiers en vb.
0
Rejoignez-nous