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 30/10/2011, 07h20   #1
Membre à l'essai
 
Homme Steph
Technicien maintenance
Inscription : janvier 2011
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme Steph
Âge : 40
Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : janvier 2011
Messages : 83
Points : 22
Points : 22
Par défaut Fenêtre valeur param sous-état incessante !

Bonjour à tous,

J'ai réalisé un état avec un sous-état qui sont basés sur 2 requêtes différentes et qui font appels à une valeur de paramètre identique.
Lorsque j'ouvre mon état, je suis obligé de rentrer 2 fois la valeur de paramètre, normal me direz-vous, mais là où ça devient pénible, c'est que dès que je touche à l’ascenseur de mon état j'ai la fenêtre valeur de paramètre qui s'affiche à nouveau...
Savez-vous pour quelle raison la valeur de paramètre m'est demandée sans cesse dès lors que je touche à ascenseur de mon état ?
Est-il possible de rentrer qu'une seule valeur de paramètre pour un état et sous-état lorsque cette dernière est identique ?

D'avance merci
fragglerick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 10h52   #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 040
Points : 11 040
Bonjour,

Citation:
Savez-vous pour quelle raison la valeur de paramètre
probablement !

Citation:
Est-il possible de rentrer qu'une seule valeur de paramètre pour un état et sous-état lorsque cette dernière est identique ?
probablement !

Montre-nous la source (sans doute une requête) de chacun de tes deux états.
Dis aussi ce qui déclenche l'ouverture de ton état principal.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 19h02   #3
Membre à l'essai
 
Homme Steph
Technicien maintenance
Inscription : janvier 2011
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme Steph
Âge : 40
Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : janvier 2011
Messages : 83
Points : 22
Points : 22
Bonsoir Claude,

je te joins les "screen shot" de mes deux requêtes.
Pour le moment je déclenche l'état principal par le volet de navigation...

Merci infiniment.
Images attachées
Type de fichier : jpg requête historique.JPG (62,9 Ko, 4 affichages)
Type de fichier : jpg requête responsabilité.JPG (91,5 Ko, 4 affichages)
fragglerick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 19h51   #4
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 040
Points : 11 040
Avec ce que tu montres, on ne voit pas clairement que le paramètre intervient dans les deux sources.
Je suppose que la première requête (celle qui demande Dinul) intervient aussi comme source de la deuxième requête.

Tu pourrais procéder comme ceci :

- à l'ouverture de l'état principal, tu recueilles la valeur de Dinul avec une InputBox,
- ce qui te permet de construire le sql de la source du sous-état et celle de l’état principal.

Es-tu à l’aise avec le code ?
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 20h24   #5
Membre à l'essai
 
Homme Steph
Technicien maintenance
Inscription : janvier 2011
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme Steph
Âge : 40
Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : janvier 2011
Messages : 83
Points : 22
Points : 22
En effet, le paramètre n'est pas visible dans la requête "Responsabilité" car il figure dans une pré-requête...

Hélas, je ne maitrise pas du tout le "code"...
fragglerick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 20h36   #6
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 040
Points : 11 040
C'est peut-être l'occasion de commencer.

Je peux t'aider.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 08h18   #7
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 040
Points : 11 040
Pour minimiser le recours au code, procède comme ceci :

- la valeur du paramètre sera logée dans une variable globale ;
- alimentée à l’ouverture de l’état principal (InputBox) ;
- dans les requêtes où le paramètre intervient, remplace ce dernier par une fonction qui donne la valeur de la globale.

As-tu besoin de plus de détail pour mettre en pratique ?
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 18h45   #8
Membre à l'essai
 
Homme Steph
Technicien maintenance
Inscription : janvier 2011
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme Steph
Âge : 40
Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : janvier 2011
Messages : 83
Points : 22
Points : 22
Bonsoir Claude,

J'avoue ne pas savoir comment m'y prendre, je vais avoir besoin d'un plus de détails. Mon niveau en access n'est pas encore suffisant ...Mais je m'accroche !

Merci
fragglerick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 20h44   #9
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 040
Points : 11 040
On y va.

Dans la fenêtre des objets, tu choisis l’onglet Modules, tu cliques sur nouveau => une fenêtre s’ouvre, tu es dans l’éditeur de code.

On va définir une variable globale.
Cela veut dire un endroit de la mémoire dans lequel on peut stocker de l’info pour la récupérer ensuite.

Tu colles ceci, dans le module :

Code :
Global gDinul As Variant
J’ai mis « variant » comme type de données parce que j’ignore le type exact (caractère, entier…) dans ta db.
Supprime « As Variant » et tape « AS » => Access va te proposer les valeurs possibles, choisis celle qui correspond à ton cas.


Nous allons aussi écrire une fonction, pour récupérer la valeur qui s’y trouvera tout à l’heure.

Code :
1
2
3
Public Function GetgDinul() As Variant
GetgDinul = gDinul
End Function
Tu remplaces « Variant » par le type qui convient à gDinul.

Tu sauves (Ctrl + S) => Access te propose un nom par défaut, tu l’acceptes et tu fermes la fenêtre de ce module.




Maintenant nous allons nous occuper de ton état principal.
Nous allons dire à Access qu’à l’ouverture de l’état, il faut demander à l’utilisateur la valeur de Dinul et la mémoriser dans gDinul.

Nous allons donc associer à l’événement « Sur ouverture » un code pour exécuter cette action.
Tu ouvres ton état en mode construction, tu affiches les propriétés, onglet Évènements, tu double-cliques sur la ligne « Sur ouverture » => [Procédure événementielle] s’affiche, clique sur les … à la fin de la ligne => une fenêtre s’ouvre : nous sommes dans le module de l’état.

Tu vois ceci :

Code :
1
2
3
4
5
6
Option Compare Database
Option Explicit
 
Private Sub Report_Open(Cancel As Integer)
 
End Sub
Là où clignote ton curseur, ajoute :

'demander à l'utilisateur de saisir la valeur de Dinul
gDinul = InputBox("Saisissez la valeur de Dinul")

la première ligne est du commentaire (commence par une apostrophe)
la deuxième ligne en français : afficher une boîte avec le texte indiqué, et mémoriser dans gDinul ce que l’utilisateur aura encodé.
Donc finalement tu as ceci :
Code :
1
2
3
4
5
6
7
Option Compare Database
Option Explicit
 
Private Sub Report_Open(Cancel As Integer)
'demander à l'utilisateur de saisir la valeur de Dinul
gDinul = InputBox("Saisissez la valeur de Dinul")
End Sub
N.B. Si tu positionnes le curseur à l’intérieur d’un mot-clé (ex InputBox) et que tu enfonces F1 => l’aide Access s’ouvre à la bonne page. De même dans la liste des propriétés des états, des formulaires.

Tu sauves.

Tu dois maintenant modifier les requêtes où intervenait Dinul.
Tu remplaces « Dinul ? » par

Ça devrait marcher.

Reviens si quelque chose t’échappe.

Bonne chance pour ton premier programme, il faut un début à tout.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/10/2011, 22h26   #10
Membre à l'essai
 
Homme Steph
Technicien maintenance
Inscription : janvier 2011
Messages : 83
Détails du profil
Informations personnelles :
Nom : Homme Steph
Âge : 40
Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : janvier 2011
Messages : 83
Points : 22
Points : 22
Claude .... Un grand merci !!
Un seul paramètre et mon état + sous-état s'affichent correctement !

Merci infiniment de ta disponibilité et de la lisibilité de tes explications
fragglerick 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 09h56.


 
 
 
 
Partenaires

Hébergement Web