IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Choisir aléatoirement un enregistrement en respectant un critère de choix


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut Choisir aléatoirement un enregistrement en respectant un critère de choix
    Bonjour, comment puis-je procéder pour choisir aléatoirement dans une base un enregistrement, tout en faisant en sorte que cet enregistrement ait un critère prédéfini d'une certaine valeur. C'est à dire que j'ai un champ "Truc" qui peut être 0 ou -1, je voudrais faire un choix aléatoire sur toute la base mais en ne sélectionnant que les enregistrements où truc = 0.

    Je pense peut-être faire un choix aléatoire sur une requête prédéfinie qui ne contient que les enregistrements où truc = 0, mais je vois pas trop comment choisir aléatoirement là dedans !!

    Merci d'avance.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Une solution pourrait être d'ouvrir un recordset et de déterminer le nombre d'enregistrements. Faire alors un tirage aléatoire (voir Rnd) du numéro d'ordre et lire l'enregistrement correspondant.
    Si le rst est ouvert avec une requête qui filtre, c'est fini. Sinon il faut vérifier que l'enregistrement tiré répond au critère et, tant que ce n'est pas le cas, recommencer.


    Bon courage,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Points : 146
    Points
    146
    Par défaut
    C'est ce que j'avais fait à la base, j'avais un code comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub cmdRegarder_Click()
    Dim varPositionDVD, varRdm As Integer
     
        varPositionDVD = 0    
        Do While varPositionDVD = 0
            varRdm = Int(Rnd * Form.RecordsetClone.RecordCount)
            If varRdm <> 0 Then
                DoCmd.GoToRecord , , acGoTo, varRdm
                DoEvents
                If Me.Vu = -1 Then
                    varPositionDVD = 1
                End If
            End If
        Loop
    End Sub
    Le fonctionnement est le choix au hasard d'un numéro (correspondant à une colonne), on va se placer sur cet enregistrement, et là on lit la valeur de la colonne "vu" affichée par le champ me.vu. Si c'est -1 alors on sort de la boucle.

    Le problème, c'est que j'ai remarqué que la valeur de me.vu correspond à l'enregistrement précédent, elle ne se réactualise pas une fois qu'on s'est déplacé dans la base !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/05/2010, 11h47
  2. [AC-2007] [QRY SQL] Copie d'un enregistrement d'une table vers une autre en respectant les critères
    Par Barbaboulle dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 11/10/2009, 15h03
  3. Choix aléatoire d'enregistrement
    Par senacle dans le forum Général Python
    Réponses: 2
    Dernier message: 16/11/2006, 14h49
  4. choisir aléatoirement un texte
    Par flo456 dans le forum ASP
    Réponses: 4
    Dernier message: 28/06/2006, 10h52
  5. Choisir aléatoirement des noms...
    Par CritikKiller dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/06/2004, 20h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo