|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() |
bonjour,
je suis entrain de creer une appli delphi qui va attaquer une base access. Je voudrais savoir comment faire pour, quand je clique sur un bouton qu'il aille me chercher un enregistrement aléatoirement (random) dans la table concernée et qu'il m'affiche dans une zone de texte. Par exemple: j'ai une table des molécules avec les champs formule, libellé, masse molaire, image de la molécule Je voudrais que dans mon appli delphi, quand je clique sur le bouton random par exemple, il me mette le libellé de la molécule choisie au hasard parmis tous les enregistrements dans une zone de texte.. Quelqu'un pourrait m'aider s'il vous plait? edit: peut etre que la fonction random choisit un chiffre parmis le nombre d'enregistrement et grace a une requete sql, je dis qu'il faut prendre la ligne numéro X dans la table (X etant le resultat de la fonction random)...... |
|
|
00
|
|
|
#2 |
![]() ![]() |
salut,
tu peux effectivement voir Random, Rand, Rnd (fonctions qui évoluent selon les langages il me semble), auquel cas tu peux les appliquer si tu as une clé primaire de type numérique (ou numéroauto).
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#3 |
|
Membre régulier
![]() |
oui j'y es pensé aussi, mais je n'ai pas d'identifiant auto increment, sinon dans ma requete j'aurai mis select... from... where IdentifiantDeMaTable=ResultatDeMaRequeteRandom
mais je n'ai pas d'auto increment |
|
|
00
|
|
|
#4 |
![]() ![]() |
auter méthode alors,
tu fais dans l'idée : - requête select * - RS.movelast - RS.RecordCount - Random sur ce recordcount - activation de l'enregistrement random.
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() |
je comprends pas comment va être ma requete
comment je dois mettre la ligne Code :
|
||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 360 ![]() |
Petite précision que je n'ai pas vue la fonction Random donne un résultat compris entre 0 et 1.
Il faut obligatoirement passer par une fonction ou autre qui va renvoyer le produit de la valeur "Random" par le nombre d'enregistrement. Ce produit devra être arrondi.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 360 ![]() |
Devrait le faire.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() |
oui mais si j'utilise la fonction random de delphi ça le fait
mais comment faut que je construise ma requête dans ce cas... je comprends plus comment fonctionne ton rnd, Rnd(xxx.Recordcount)...ça fait quoi exactement cette fonction, et le "xxx" c'est le nom de ma table c'est ça? dans ce cas faudrait que je mette quoi dans ma requete select libelle from Matable where ..? |
|
|
00
|
|
|
#9 | ||
![]() ![]() |
salut, xxx est le nom du recordset,
tu fais Code :
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
||
|
00
|
|
|
#10 |
|
Membre régulier
![]() |
ouaaah, j'y comprends pas grand chose...
je suis debutant en faite... le recordset c'est quoi ? En faite, je suis sur mon appli delphi et quand je clique sur mon bouton faut qu'il execute un random puis qu'il selectionne la ligne d'enregistrement numéro=resultat du random, donc la avec ce que vous me donnez, je sais plus quoi faire et ou faire... je sais plus a quoi doit ressembler ma requete... |
|
|
00
|
|
|
#11 | ||
|
Expert Confirmé
![]() Inscription : mai 2005 Messages : 3 419 ![]() |
Code :
__________________
Elle est pas belle la vie ? |
||
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 360 ![]() |
Oui, mais la facilité de la chose, il n'a pas de champ numérique !
Pour avoir le RecordCount, il faut avant faire un rs.moveLast Un peu de lecture sur le DAO
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#13 | ||||
|
Expert Confirmé
![]() Inscription : mai 2005 Messages : 3 419 ![]() |
qu' a cela ne tienne
il ajoute Code :
Code :
__________________
Elle est pas belle la vie ? |
||||
|
|
00
|
|
|
#14 |
![]() ![]() |
[mode je fais mon zeste d'humour] et ca va marcher comme par hasard ? [/mode]
par contre, tu peux nous expliciter ton order by random stp ? En quoi consiste-t-il ? Merci d'avance.
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#15 |
|
Expert Confirmé
![]() Inscription : mai 2005 Messages : 3 419 ![]() |
la clause order by [desc] unevaleur comme tu le sais a pour effet de classer un jeu d'enregistrements sur unevaleur croissante [décroissante]
d'une façon générale on choisit un champ mais on peut très bien faire order by le résultat d'une fonction et si cette fonction renvoie des nombres au hasard le résultat du classement sera aléatoire ce qui semble être le but poursuivi
__________________
Elle est pas belle la vie ? |
|
|
00
|
|
|
#16 |
![]() ![]() |
merci pour cette info
![]() kumo, avec ca tu t'en sors ?
__________________
Pas de question technique par MP, je ne réponds pas ![]() Mon perso ? Une vraie brute Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access |
|
00
|
|
|
#17 |
|
Membre régulier
![]() |
je n'arrive pas à comprendre, d'apres ce que je comprends là, la requête se fait dans access, mais moi ma requete c'est dans delphi que je dois la faire ...
|
|
|
00
|
|
|
#18 | ||||
|
Membre Expert
![]() ![]() Inscription : avril 2006 Messages : 1 318 ![]() |
bonjour,
Sauf erreur, le code de random ne fonctionne que si on passe un argument non constant à la fonction : Code :
Code :
Philippe |
||||
|
00
|
|
|
#19 | |
|
Office & Excel ![]() ![]() ![]() |
Bonsoir
Citation:
A priori, je ne vois que la solution suivante, en delphi: 1. déterminer un nombre aléatoire I entre 1 et le nombre d'enregistrements de la requête 2. Itérer par rs.movenext dans une boucle en Delphi jusqu'à la valeur de I. Ta demande étant spécifiquement sql, je te conseille d'aller sur le forum du langage sql pour poser ta question. Bonne continuation
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com