Les mémos

Fermer Tables

Fermer Requêtes

Fermer Formulaires

Fermer Etats

Fermer Modules

Fermer Base

Fermer Automation

Fermer Administration

Fermer Registre

Fermer String

Fermer Email CDO

Fermer Outlook

Fermer Net

Fermer Dates - Heures

Fermer Fichiers

Fermer Références

Fermer Vrac

Recherche



Je débute...

Fermer La normalisation

Fermer VBA

Lettre d'information
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
Captcha
Recopier le code :
Attention
Aucun support
par émail !

Utilisez le forum pour les questions/réponses concernant MsAccess et les codes que vous trouverez sur ce site.
Au sujet de l'auteur
L'auteur qui fréquente (fréquentait) le forum microsoft.public.fr.access a eu le plaisir d'être nommé MVP Office-Access de janvier 2003 à décembre 2011.

Qui sont les MVP ?

Visites

   visiteurs

   visiteurs en ligne

Divers ;-)
Nous contacter

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes Access des débutants - Problèmes Access des débutants


actif  Sujet n° 781  affichage conditionnel de champs

le 16/03/2017 : 09:59
par laurent

Anonyme

visiteur

Bonjour,

Je découvre votre site et je me dis que ça vaut peut être le cout que je vous soumette mon pb sur lequel je bloque depuis quelques temps maintenant.
Voilà, je souhaiterais conditionner l'affichage d'un champ en fonction de critères.
Je m'explique, j'ai une requête dans laquelle je souhaite récupérer certains champs dont la valeur associée est supérieure à 0. Il n'y a pas de PB pour exécuter cette requête mais le résultat affiché en mode "feuille de données" affiche toujours le nom du champ. En fait je voudrais cocher ou décocher la case "afficher" en fonction de critère accessible en mode création dans ma requête.

Merci d'avance pour votre aide.

Lauent
Ecrire à laurent   Poster une réponse  Haut

[]   

Réponse n° 1
--------
le 17/03/2017 : 01:56
par 3Stone

3Stone

Administrateur

Bonjour,
 
Citation :

En fait je voudrais cocher ou décocher la case "afficher" en fonction de critère accessible en mode création dans ma requête.

 
En fait la requête graphique est un assistant... et qui ne permet pas d'intervention.

Pour obtenir une requête "à la demande", il faut se tourner vers le VBA et créer la requête selon les critères. Ces critères peuvent alors être des cases à cocher dans un petit formulaire, par exemple.
La requête sera alors directement composée en SQL et exécutée.
Il faut bien sûr avoir des des notions en VBA et en création de requête... sans l'assistant graphique.

Note: Lorsqu'une requête est en affichage "mode création", tu peux aussi la basculer en "mode SQL". C'est cette version de la requête qu'il te faudra recréer par VBA.

Cordialement,
Pierre (3Stone)
  Poster une réponse  Haut
Réponse n° 2
--------
le 17/03/2017 : 15:15
par laurent

Anonyme

visiteur
Bonjour et merci 3stone pour votre réponse. Bien que je ne connaisse pas le VBA, je trouve votre réponse encourageante.
Si j'ai bien compris, il semble que ce soit faisable en appuis d'un formulaire ?
Mais est ce que je pourrai activer ou désactiver cette case à cocher dans ma requête automatiquement en fonction des critères ?
L'objectif final étant de pouvoir éditer un état ( dynamique )avec seulement les champs utiles.

Laurent,
  Poster une réponse  Haut
Réponse n° 3
--------
le 17/03/2017 : 22:13
par 3Stone

3Stone

Administrateur

Bonjour,
 

Citation :

est ce que je pourrai activer ou désactiver cette case à cocher dans ma requête automatiquement en fonction des critères ?

 
Comme déjà dit, c'est non...

Le requêteur graphique est un assistant qui permet de choisir la source, les champs nécessaire, les conditions et l'ordre des tris.
Cette requête sera alors exécutée directement ou devenir à son tour une source... pour une autre requête, un état, etc.

Mais :
 

Citation :

L'objectif final étant de pouvoir éditer un état ( dynamique )avec seulement les champs utiles.

 
Il n'est nécessaire ou obligatoire d'afficher dans un état tous les champs de sa source (requête ou table).
Par contre, tu dois définir ces champs avant d'exécuter l'état.

On peut encore lors de l’exécution de l'état choisir si oui ou non un tel champ sera affiché, mais par VBA l

Pour ce que tu veux faire, il te faudrait :

  • construire la requête par VBA et ensuite
  • construire l'état par VBA

cela demande bien sûr de (très) bonnes connaissances de ce VBA y

Mais comme souvent, ce genre de besoin provient souvent d'une mauvaise construction de la base (sa modélisation).

Peut-être que si tu explique pourquoi tu veux ne pas afficher des champs dans l'état que tu sélectionne éventuellement dans la requête.

Si à l'avance tu connais les champs que tu souhaites sélectionner, le plus simple est de créer plusieurs requêtes de ces alternatives.

Cordialement,
Pierre (3Stone)

  Poster une réponse  Haut
Réponse n° 4
--------
le 20/03/2017 : 11:34
par laurent

Anonyme

visiteur

Bonjour Pierre,

Je dois limiter l'affichage des champs sur cet état car je souhaite reproduire un formulaire papier existant et la table sur laquelle je fais une requête couvre beaucoup de champs. Limiter les champs qui sont utiles, c'est à dire ceux pour lesquels une quantité a été saisi me permet, je l'espère, de me rapprocher du formulaire papier existant.

En ce qui concerne la modélisation de ma base, c'est une bonne question en effet, j'ai essayé de faire au mieux mais je me pose aussi cette question compte tenu de la difficulté que je rencontre maintenant avec cette étape qui correspond à l'objectif final.

Je vais essayer de te décrire le projet :

1/ Il y a une diététicienne qui conçois différents menus en fonction des populations ( maison de retraite ).

2/ Ces menus sont reportés sur des formulaires papier, distribués dans les services ( 15 ) qui remplissent les quantités des plats choisis par les résidents.

3/ Ces formulaires sont rassemblés pour les cuisiniers qui consolident les quantités par plat.

PS: Est il possible de joindre des pièces aux messages, ce qui me permettrait de vous présenter certains documents ?

Laurent

.

Mise en forme pour plus de lisibilité.

 

Ecrire à laurent   Poster une réponse  Haut
Réponse n° 5
--------
le 20/03/2017 : 14:24
par 3Stone

3Stone

Administrateur

Bonjour,
 

Citation :

Je dois limiter l'affichage des champs sur cet état car je souhaite reproduire un formulaire papier existant et la table sur laquelle je fais une requête

 
Oui, mais les champs de la source ne doivent pas tous apparaître dans l'état.
La requête peut contenir 10 champs, dont seuls 7 sont inclus dans l'état.
Même si cette façon de faire ne représente pas la méthode idéale...
 

Citation :

je fais une requête couvre beaucoup de champs

 
Il faut voir ce que veut dire "beaucoup".
Beaucoup de champs dans une table sont souvent le signe d'un manque ou absence de modélisation.
 

Citation :

Est il possible de joindre des pièces aux messages, ce qui me permettrait de vous présenter certains documents ?

 
Directement aux messages, ce n'est pas possible.
Mais tu peux utiliser ceci pour transmettre les fichiers.

Cordialement,
Pierre (3Stone)

  Poster une réponse  Haut
Réponse n° 6
--------
le 23/03/2017 : 02:02
par 3Stone

3Stone

Administrateur

Bonjour,

Un petit mot pour dire que j'ai reçu les fichiers et jeté un oeil rapide à la base...

En principe, en regardant les tables (et relations), on devrait comprendre de quoi il retourne et la destination.
Je dois dire qu'ici cela ne semble pas être le cas, c'est le moins que je puisse dire.

En fait, j'ai l'impression que l'on essaie de copier (structure y compris) ce qui se ferait sur le papier. Ce n'est pas la bonne approche.

Je ne connais pas le domaine visée par cette base, mais la demande originale (décocher des cases à cocher dans une requête) montre bien le défaut de construction de la base.

J'ai pas le temps de m'y pencher plus avant actuellement, mais j'y reviendrai d'ici quelques jours. Malheureusement, j'ai bien l'impression qu'il faudrait recommencer à zéro... après une analyse sérieuse.

Cordialement,
Pierre (3Stone)
  Poster une réponse  Haut
Réponse n° 7
--------
le 23/03/2017 : 09:17
par laurent

Anonyme

visiteur
Bonjour Pierre,

j'accuse réception de ton message, je pense en effet que j'aurai probablement à revoir l'ensemble d'une façon différente de ce que j'avais imaginé au départ. J'attends tes conseils qui seront les bienvenus.

Bonne journée
Laurent
Ecrire à laurent   Poster une réponse  Haut
Réponse n° 8
--------
le 27/03/2017 : 15:01
par laurent

Anonyme

visiteur
Bonjour Pierre,

Je reviens vers toi car après réflexion je me demande si par un autre moyen je ne pourrai pas réussir à obtenir ( en parti ) le résultat recherché avec des critères qui me permettraient de créer des tables pour afficher les infos recherchées:

Extraire des valeurs d'une ou plusieurs tables en mettant un marqueur qui me permettrait à partir d'une requête de trier "des plats" qui seraient soit chaud, soit chaud et/ou mixés et pouvoir faire la même chose avec une autre requête sur les mêmes tables pour les plats froids et/ou froids et mixés.
C'est à dire que lors de la saisie initiale des plats j'y associe ces marqueurs.

Merci d'avance pour tes conseils.
Laurent
Ecrire à laurent   Poster une réponse  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut