Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/09/2011, 03h14   #1
Futur Membre du Club
 
Étudiant
Inscription : 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 : 18
Points : 18
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 :
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
david89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 05h57   #2
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 074
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 56
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 074
Points : 4 384
Points : 4 384
Envoyer un message via Skype™ à GAYOT
Bonjour
Essaies comme ceci.
Code :
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
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 03h46   #3
Futur Membre du Club
 
Étudiant
Inscription : 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 : 18
Points : 18
Merci, ça marche parfaitement
david89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h33.


 
 
 
 
Partenaires

Hébergement Web