{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. Est-il possible d'avoir 2 prenoms identiques ?
    0
    1. oui cela est possible mais je pe fire en sorte que non as tu une idee
      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. 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. peux tu m expliquer la requete stp

            merci
            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. 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. 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. 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. bonjour

                      merci bcp je test ca cette apres midi
                      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. 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. 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