{Access} randomize! !

Résolu
Bonjour,

voila je vous explique ce que je souheterais faire

j ai une table avec un champ "prenom"

j'ai fais un formulaire avec autant de champ que de "prenom" j aimerais pouvoir aleatoirement mettre un prenom dans chaque champ mais je ne vois pas par ou commencer je suppose qu 'il faut uitliser la fonction randomize mais j en suis pas du tt sur

merci a vous
Configuration: Windows XP
Firefox 3.0.13

16 réponses

  1. Salut, voilà ce que tu peux faire :)

    rslt.Requery
    test = 0
    Do While test = 0
        If C1 <> rslt.Column(0, 0) And C2 <> rslt.Column(0, 1) And C3 <> rslt.Column(0, 2) And C4 <> rslt.Column(0, 3) And C5 <> rslt.Column(0, 4) And C6 <> rslt.Column(0, 5) And C7 <> rslt.Column(0, 6) Then
            C1 = rslt.Column(0, 0)
            C2 = rslt.Column(0, 1)
            C3 = rslt.Column(0, 2)
            C4 = rslt.Column(0, 3)
            C5 = rslt.Column(0, 4)
            C6 = rslt.Column(0, 5)
            C7 = rslt.Column(0, 6)
            test = 1
        Else
            rslt.Requery
        End If
    Loop


    Cordialement.
    0
    1. c bon g reussi !!!!!!

      maintenant j essai un truc c de dire que sur mise a jour si le prenom na pas changé lors je recommence

      g essyé ca
      If Me.prenom1 = me.prenom1 Then
      .......
      End If

      mais sans reussite

      g essayé avec un msgbox mis il se met a chaque fois!!!!

      merci
      0
      1. bonjour

        voila je vien d essayé mais aucun resultat l requete fonctionne la zone e liste aussi mais rien ne s inscrit s mes champs
        0
        1. bonjour

          merci bcp je test ca cette apres midi
          0
          1. Bon ... Je vais te faire un tuto ^^

            Tu vas dans requête et tu fais cette requête :

            SELECT prenom
            FROM Table1
            ORDER BY Rnd((1*id)*rnd());


            Sur un formulaire, tu mets 7 Zones de texte (ex de nom : C1,C2,C3,C4,C5,C6,C7)
            Ensuite tu mets 1 Zone de liste (ex de nom : rslt) que tu mettras en cacher (Visible non).
            Dans le contenu, tu vas chercher ta requête.

            A l'ouverture de ton formulaire tu mets le code suivant, qui va remplir tes champs.

            C1 = rslt.Column(0, 0)
            C2 = rslt.Column(0, 1)
            C3 = rslt.Column(0, 2)
            C4 = rslt.Column(0, 3)
            C5 = rslt.Column(0, 4)
            C6 = rslt.Column(0, 5)
            C7 = rslt.Column(0, 6)


            Tu peux faire un bouton qui peut refaire la requêtre, en mettant sur l'évenement clique :

            rslt.Requery
            C1 = rslt.Column(0, 0)
            C2 = rslt.Column(0, 1)
            C3 = rslt.Column(0, 2)
            C4 = rslt.Column(0, 3)
            C5 = rslt.Column(0, 4)
            C6 = rslt.Column(0, 5)
            C7 = rslt.Column(0, 6)


            J'espère que tu as bien compris :)

            Cordialement.
            0
            1. Bon j'ai une solution, mais a t'expliquer ça va être dur :/

              en passe moi ton mail, je t'envoi la base, et tu regarde se que j'ai fais :)

              Cordialement
              0
              1. ok merci bcp

                Serais tu m aider pour generer un code qui met un prenom sur le champ1 puis un <> champ2.....

                merci bcp
                0
                1. Oups désolé ...

                  fait cette requête :

                  SELECT TOP 1 prenom FROM Table1 ORDER BY Rnd((-1000*id)*rnd());

                  TOP 1 : Prend le premier résultat de la requête
                  ORDER BY : Range les requêtes
                  Rnd(-1000*id) : nombre aléatoire, -1000 je ne sais pas, et id le numéro de ton incrémentation (J'ai repris un code que j'ai modifier)
                  et le dernier rnd, il prend un nombre aléatoire, toute a l'heure je t'ai donné le temps, mais des que tu génères la requête pour tous c'était le même temps, pour cela que j'ai changé par rnd()

                  Cordialement.
                  0
                  1. peux tu m expliquer la requete stp

                    merci
                    0
                    1. salut je vien d essayé mais j obtien tjs le meme prenom et mon but est de remplir 7 champs avec mes 7 prenom different et aleatoirement
                      merci a toi
                      0
                      1. En supposant que dans ta table (Table1) tu as 2 champs (id et prenom)

                        la requete suivante va te donner le prenom d'une personne aléatoirement.

                        SELECT TOP 1 prenom FROM Table1 order by Rnd((-1000*id)*Time());

                        Cordialement
                        0
                        1. oui cela est possible mais je pe fire en sorte que non as tu une idee
                          0
                          1. Est-il possible d'avoir 2 prenoms identiques ?
                            0