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 :

Utilisation VBA d'une valeur spécifique de requête [AC-2010]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 38
    Points : 29
    Points
    29
    Par défaut Utilisation VBA d'une valeur spécifique de requête
    Bonjour,

    J'ai créé 17 formulaires/tables sur le même principe.
    Chaque formulaire comporte des questions, la réponse s'écrit dans une textbox juste en dessous et un menu à droite permet à l'utilisateur de préciser si la réponse est "Done", "In Progress" ou "Undone".
    Ces menus fournissent une valeur 1 pour Undone, 2 pour In Progress et 3 pour Done.
    Ces valeurs sont enregistrées dans la table correspondant au formulaire (comme ça, on perd pas le choix du menu lorsqu'on ferme l'application).

    Sur la page de garde, un bouton changeant de couleur correspond à chacune des pages-questions.
    On se retrouve donc avec 17 boutons, qui changent de couleur si l'ensemble des questions d'une même page sont Done ou Undone.

    Exemple : le bouton pour la page-question numéro 5 (il y a 9 questions dans cette page) est de couleur verte si le total des menus est de 27 (3 fois 9, 3 fois Done), rouge si le total est 9 (3 fois Undone) et jaune/orange autrement.

    Jusqu'à présent je lançais les calculs au chargement de la page de garde.
    On Load, 17 calculs allant à chaque fois chercher les valeurs de chaque menus (70 menus au total), etc.
    C'était lourd....

    Désormais je souhaiterais obtenir sur une table séparée l'ensemble des sommes de chaque page-question. Et me servir des valeurs à partir de là.
    En gros, une table avec 17 colonnes et la somme correspondante à chaque page dans chaque colonne, puis lier chaque couleur de boutons à la valeur d'une colonne spécifique.

    J'ai créé une requête qui calcule l'ensemble des sommes de chaque page-question.
    Nom de la requête : Q_Tot
    J'obtiens ceci:
    Page 1 ! Page 2 ! Page 3....
    7 ! 13 ! 8

    Je souhaiterais, via mon code VBA; aller 'piocher' dans cette requête la valeur correspondant à la page.

    PROBLEME : Je ne sais pas du tout comment aller chercher une valeur spécifique dans une requête via du VBA, même après avoir lu les tutos (je débute en Access et en VBA et n'ai jamais fait de SQL).

    Voici mon code pour la page-question numéro 4:
    BTB4 est le bouton sur la page de garde qui doit changer de couleur selon l'états des questions de la page 4
    Ce code se charge sur la page de garde.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub Form_Load()
    Dim totB4 As Integer
       totB4 = 'ICI je devrais avoir la valeur de la colonne 4 de la requête Q_Tot
    Select Case totB4
            Case 8
        Me.BTB4.QuickStyle = 38
           Case 24
        Me.BTB4.QuickStyle = 39
          Case Else
        Me.BTB4.BackColor = RGB(255, 194, 14)
     End Select
    End sub
    Sauriez-vous comment faire?
    Je m'y prends peut être complètement de travers. Si-t-elle est le cas, que dois-je faire?


    Merci d'avance pour l'aide.
    David

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Essaies comme ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Form_Load()
    Dim totB4 As Integer
       totB4 = Nz(Dlookup("Page_4", "Q_Tot"),0)
    Select Case totB4
            Case 8
        Me.BTB4.QuickStyle = 38
           Case 24
        Me.BTB4.QuickStyle = 39
          Case Else
        Me.BTB4.BackColor = RGB(255, 194, 14)
     End Select
    End sub
    Dernière modification par Invité ; 22/09/2011 à 06h10.

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Merci, ça marche parfaitement

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

Discussions similaires

  1. [XL-2007] VBA suppression de ligne d'un tableau comportant une valeur spécifique
    Par PSAIMOND dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 13/02/2014, 12h57
  2. Réponses: 20
    Dernier message: 01/04/2013, 18h40
  3. [VBA] Comparer une valeur à un masque de saisie
    Par spaiku dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/08/2008, 12h46
  4. (VBA) écrire une valeur dans une table
    Par migaleb dans le forum Access
    Réponses: 1
    Dernier message: 22/06/2006, 12h45
  5. VBA : ajouter une valeur dans une liste déroulante
    Par remi59 dans le forum Access
    Réponses: 4
    Dernier message: 22/12/2005, 10h01

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