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 22/02/2011, 09h56   #1
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
Par défaut Formulaire et état basés sur une requête analyse croisée

Bonjour à tous,

Ceci est en relation avec cette discussion :

http://www.developpez.net/forums/d10...s/#post5779120

J’ai créé un formulaire basé sur une requête analyse croisée.
Pour le formulaire, plus de problème.

J’essaie maintenant de produire un état semblable au formulaire.

L’idée est de partir d’un embryon d’état qui contient des champs indépendants et de le compléter de manière dynamique. C’est-à-dire faire en sorte que la source de l’état soit celle du formulaire et que les propriétés des contrôles du formulaire (qui ont été créés dynamiquement) soient reportées dans l’état.

Pas de problème pour le code relatif à ces manipulations.

Le problème
Ce message apparaît lorsque je tente d’afficher l’état :



[A force de chercher une solution, je constate que si j’enregistre une copie de la source du formulaire dans une requête, et que je base mon état sur cette requête, j’obtiens mon résultat.

Merci déjà à ceux qui m’aideront à comprendre pourquoi.

Pour que vous puissiez visualiser, je joins une BDD réduite.

Quoi qu'il en soit, bonne journée.
Images attachées
Type de fichier : jpg 20110222FormEtatReqCroisee.jpg (225,1 Ko, 55 affichages)
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 19h58   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut Claude,

J'espère que cet exemple pourra t'aider :
FormEtatReqCroisee2.zip

sur ouverture de l'état tu peux aussi faire :

Code :
1
2
3
4
5
6
7
set rs=Me.recordset
 
for i=1 to rs.fields.count-1
Me("zdtFournisseur" & Format(i,"00")).ControlSource = rs(i).name
Me("etFournisseur" & Format(i,"00")).Caption = rs(i).name
         ...
next i
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 22/02/2011, 21h02   #3
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
Bonsoir User,

Merci !

Effectivement ton code m’a aidé à comprendre que, dans ma deuxième solution (celle qui fonctionne), je reconstruisais systématiquement la même requête quels que soient les filtres. Le sql de la requête croisée reste identique, c’est son résultat qui change !

Donc, je peux simplifier mon code en enregistrant l’état avec une source permanente : la requête que j’ai appelée rTransitoire dans mon exemple.

1er réflexe
Par souci d’uniformité, j’inscris aussi le nom de cette requête comme source de mon formulaire (dans mon exemple, c’est le sql que j’avais indiqué).
Cela fonctionne.

2e réflexe
Pour économiser un objet (rTransitoire), j’essaie d’enregistrer mon formulaire et l’état avec, dans les deux cas, le sql comme source.
Résultat : le formulaire fonctionne mais l’ouverture de l’état provoque le message que j’ai mentionné dans mon poste précédent.

C’est donc comme si, dans ACCESS2000, la source d’un état ne peut pas être le sql d’une requête croisée. La requête en question doit être enregistrée et c’est son nom qui doit figurer dans la propriété source de l’état.

Merci encore pour ton intervention.

Au plaisir de te recroiser.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 21h28   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Bonsoir Claude,

Effectivement la source de l'état doit être enregistrée...

Content d'avoir contribué à résoudre ton problème

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/02/2011, 13h58   #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
Par défaut Encore un mot...

Salut User,

Citation:
Code :
1
2
3
4
5
6
7
set rs=Me.recordset
 
for i=1 to rs.fields.count-1
Me("zdtFournisseur" & Format(i,"00")).ControlSource = rs(i).name
Me("etFournisseur" & Format(i,"00")).Caption = rs(i).name
         ...
next i
J’ai retenu ton idée.

L’écriture est élégante et en plus cette manière d’aborder me libère de la contrainte de mentionner dans le code le nombre de paires Etiquette / Fournisseur.

C’est intéressant pour la maintenance : si on dispose d’un écran plus large qui permet d’augmenter le nombre de paires sans altérer le confort de lecture, il suffit d’ajouter les contrôles supplémentaires en respectant la numérotation, le code ne devra pas être modifié.

Merci encore.
ClaudeLELOUP 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 11h10.


 
 
 
 
Partenaires

Hébergement Web