Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 27/12/2010, 16h08   #1
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
Par défaut Intégrer données requête + graphique dans 1 état sans redondance des demandes des critères de la requête

Bonjour,

Dans un état, je fais apparaitre les données issues d'une requête (par année, les produits vendus et nombre de ventes de ces produits).
Pour chaque année, le total des ventes pour l'ensemble des produits. Voila ce que ça donne sur l'état :

1ere année
produit P1............nbre de vente V1
produit P2............nbre de vente V2
total...................V1+V2

...

dernière année
P1..............V1
P2..............V2
total...

La requête source des données a été crée via l'assistant et une boite de dialogue s'affiche 2 fois au cours de son exécution pour que l'utilisateur indique l'année de début (1ere année) et la dernière année de restitution des données. Simple, ça fonctionne.


En pied de page, je souhaite intégrer un graphique reportant les volumes vendus par année.
Via l'assistant, il faut indiquer la requête ressource.

Le souci est que ça fait réapparaitre une nouvelle fois les 2 boites de dialogue pour demander les 2 années intiale et finale de restitution.

Il n'y a pas moyen de se baser sur les données du tableau déjà créé juste au dessus pour ne pas avoir à relancer la requête et donc les msgbox ??
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 16h19   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

Pour l'instant tu passes les paramètres "année" via tes requêtes.

Procède plutôt comme ceci :

- A l'aide de d'un formulaire, demande d'introduire les 2 dates
- mémorise ces dates dans des variables globales
- dans tes requêtes tu fais référence à la valeur des ces variables.

Si en Access2007 (comme ACCESS2000), on ne peut pas se référer à une variable ---> tu écris 2 fonctions qui récupèrent leur valeur.
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 16h31   #3
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
Ok merci, donc dans ma requête actuelle, en critère, je peux faire référence à une variable globale et non à un code du type "[année..]" pour faire apparaitre une msgbox ?
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 16h33   #4
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
La variable globale, c'est via la création d'un module il me semble ?
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 16h40   #5
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Deux fois : "oui"
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 16h43   #6
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
J'ai créé ma variable globale mais la requete ne reconnait pas sa valeur quand je l'indique dans le champs critère de la requete (syntaxe incorrecte).

Où faut-il créer cette fonction et comment l'appeler dans ma requete ?
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 16h58   #7
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
Je commence à comprendre le principe (j'ai fait un peu de VB6 mais presque pas d'access).

J'ai créé une fonction dans le module et je l'appelle via le générateur d'expression de ma requête.

On peut considérer que c'est résolu, merci
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 17h05   #8
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Le temps que tu répondes, je préparais ceci :

Dans un module :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Option Compare Database
Option Explicit
 
Global AnneeDebut As Integer
Global AnneeFin As Integer
 
Public Sub Lister()
AnneeDebut = InputBox("Année Début ""aaaa""")
AnneeFin = InputBox("Année Fin ""aaaa""")
Docmd.openReport "Etat"
End Sub
 
Public Function GetAnneeDebut()
GetAnneeDebut = AnneeDebut
End Function
Public Function GetAnneeFin()
GetAnneeFin = AnneeFin
End Function


Dans ta requête, là où tu avais =[AnnéeDébut], tu indiques

=getAnneeDebut()
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 17h08   #9
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
Merci bien ça confirme ce que j'avais créé en tâtonnant
atech 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 10h07.


 
 
 
 
Partenaires

Hébergement Web