Access fonction aléatoire

Sil -  
moiced59 Messages postés 1161 Statut Membre -
Bonjour,

Je me demandais s'il était possible d'afficher sous access une chaîne de caractère de façon aléatoire (les chaînes de caractères étant préalablement enregistrées dans la BDD) ? Si oui quelle fonction ? et comment l'utilisée???
merci d'avance pour votre aide ^^

Sil

30 réponses

  • 1
  • 2
  1. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    tu veux les afficher où ?

    Si elles sont dans une table, la fonction rnd peut te permettre d'extraire la ligne correspondante...

    A+ Blux
     "Les cons, ça ose tout. 
    C'est même à ça qu'on les reconnait"
    1
  2. moiced59 Messages postés 1161 Statut Membre 60
     
    Bonjour

    J'ai deja u ce probleme je l'ai reglé comme ceci.

    Tout mes mot etait dans une table exemple mot qui a un champ Mot et un champ id qui est numero auto

    J'ai creer une requete qui s'appel alea:

    Select top1 mot from mot order by Rnd(Now()*id);

    Dans mon code vba

    dim rs as recordset
    dim db as database

    set db = curentdb
    set rs = db.openrecordset("alea")
    whith rs
    aleatoire = !mot
    msgbox(mot)
    end with
    rs.close
    db.close

    A toi de voir pour adapter ce code a ton souci
    1
  3. Sil
     
    bonjour!!
    merci pour ta réponse!
    pour répondre à ta question j'aimerais bien qu'une fenêtre s'ouvre et affiche un mot aléatoirement et peut-être mettre un bouton "suivant" pour afficher un nouveau mot... je sais pas si tu vois ce que je veux dire???

    merci pour ton aide!!

    Sil
    0
  4. Sil
     
    bonjour,
    merci pour ta réponse!!!
    c'est juste pour avoir quelque précision concernant ton message moiced59, "top1" correspond à quoi? et quand je veux exécuter la requête il m'indique une erreur... mais j'ai aussi un problème quand j'ai voulu exécuter le code VBA, on m'a demandé le nom de la macro (que j'ai appelé alea) et ensuite ce morceau de code est apparu: Sub alea() End Sub.
    Je suis un peu (beaucoup même!!) perdu
    merci pour votre aide
    sil
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. moiced59 Messages postés 1161 Statut Membre 60
     
    Bonjour

    Top 1 signifie je recupere le 1 ere enregistrement

    Donne moi les nom exact de ton travail et je te fais ta requete

    Qd tu execute la requete tu obtiens bien 1 seul resultat?
    0
  7. Sil
     
    Re!

    alors ma table s'appelle "mots", et j'ai deux champs: "num" et "nom"
    Par contre quand j'exécute la requête j'ai une erreur par rapport à la dernière ligne: il me dit qu'il y a une erreur de compilation.

    merci pour ton aide
    sil
    0
  8. moiced59 Messages postés 1161 Statut Membre 60
     
    Essai cette requete

    SELECT top 1 Nom
    FROM Mots
    ORDER BY Rnd(Now()*num);
    0
  9. Sil
     
    J'ai toujours cette erreur de compilation:
    "Erreur de compilation. dans l'expression Rnd(now()*num);"
    0
  10. moiced59 Messages postés 1161 Statut Membre 60
     
    Tu fais comment tu fais la requete et tu fais executer ou tu passe par du VBA?
    0
    1. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      now() renvoie une date et heure, donc la multiplier par une valeur, je ne sais pas si cela a un sens...
      0
    2. moiced59 Messages postés 1161 Statut Membre 60
       
      tu n'a pas bien lu
      0
    3. moiced59 Messages postés 1161 Statut Membre 60
       
      Bien sur que si c la facon d obtenir un nbre variable qui sert a trier aleatoirement
      0
  11. Sil
     
    bonjour!!

    Voici la requête que j'utilise...
    SELECT TOP 1 nom
    FROM mots
    ORDER BY Rnd(Now()*num);

    et ensuite je fais exécuter ...

    merci pour votre aide^^
    Sil
    0
  12. moiced59 Messages postés 1161 Statut Membre 60
     
    Elle fonctionne tres bien chez moi

    Supprime le top 1 voir
    0
  13. Sil
     
    même en supprimant le top 1 ça ne fonctionne toujours pas....
    est ce que ça change quelque chose si c'est access 2007? ça a une incidence? peut-être que le problème vient de là?

    encore merci de ton aide^^
    sil
    0
  14. moiced59 Messages postés 1161 Statut Membre 60
     
    J suis sous 2007

    J'ai creer la base sous 2003 et cela fonctionnait deja

    tu peux m'envoyé ta base?
    via cijoint.fr

    Merci
    0
  15. Sil
     
    ma base était enregistrée en 2007... et je voulais te l'envoyer dans une version 2002-2003, et avant de te la renvoyer j'ai tester avec cette version et ça fonctionne... donc en fait c'est un problème de version... parce que là avec la version 2002-2003 j'ai bien un mot qui s'affiche !!!

    tu veux toujours que je t'envoies ma base? et si oui quelle version?
    merci de ton aide
    Sil
    0
  16. moiced59 Messages postés 1161 Statut Membre 60
     
    Je viens de recreer une base en 2007

    avec une table mots et g tester la requete cela fonctionne donc je veux bien ta base 2007 pour voir le probleme
    0
  17. Sil
     
    Je pense que mon erreur venait de ma mauvaise utilisation du code vba (celui que tu m'avais passé dans un de tes premiers posts) et en supprimant ce que j'avais fait en vba ben la requête fonctionne... est ce que c'est normal qu'elle m'affiche toujours le même mot à chaque fois que je la lance? et comment faire pour intégrer du code VBA... puisque apparemment j'ai des difficultés à le faire...

    merci ^^
    Sil
    0
  18. moiced59 Messages postés 1161 Statut Membre 60
     
    Non c pas normal le mot doit changer environ toute les 2 secondes

    Execute le plein de fois de suite voir
    voici un code qui fonctionne j'ai creer un bouton et cliquer plusieurs fois g un mot different a chaque fois

    Dim db As Database
    Dim rs As Recordset
    Set db = CurrentDb
    Dim mess As String
    Set rs = db.OpenRecordset("aleatoir")
    With rs
    mess = !nom
    MsgBox (mess)
    End With
    rs.Close
    db.Close
    0
  19. Sil
     
    bonjour,
    désolé j'ai du m'absenter un moment...
    bon de mon côté j'ai un peu avancé... je ne sais pas si mon projet était bien expliqué... je sais pas si j'avais bien expliqué je voulais que la fenêtre s'affiche dans access... mais comme je n'ai pas trouvé comment faire (si ça se trouve on ne peut pas le faire!!) donc j'ai téléchargé une version express de VB... j'ai réussi ma connexion entre ma base access (2007) et vb mais la connexion ne fait plus comme avant... alors maintenant je suis un peu perdu... je ne sais pas comment écrire que je voudrais à l'enregistrement suivant... parce que le code juste au dessus ne fonctionne pas... beaucoup de chose ont changé depuis VB6... :s j'aurais pas du laisser tomber... mais j'y reviens lentement mais surement^^
    encore merci pour votre aide
    Sil
    0
  20. moiced59 Messages postés 1161 Statut Membre 60
     
    Bonjour

    Le code VBA que je t mis fonctionne tres bien
    0
  21. Sil
     
    bonjour^^

    ok ben s'il fonctionne bien chez toi, je vais persister^^ mdr ^^
    merci pour ton aide^^

    Sil
    0
  • 1
  • 2