Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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 10/05/2011, 14h48   #1
Membre du Club
 
Inscription : novembre 2003
Messages : 155
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 155
Points : 66
Points : 66
Envoyer un message via ICQ à jncoffy
Par défaut Filtrer une requête d'après un groupe d'options

Bonjour

Je dispose d'un formulaire indépendant contenant un certain nombre de contrôles. L'un de ces contrôles est un groupe d'options se nommant CadreOption. Ce CadreOption contient une option nommée BasculGrasse, une autre nommée BasculGalbée,...

Lorsque je clique sur le bouton 'lancer une recherche' une requête1 est interrogée et prend ses critères dans les contrôles du formulaire. J'ai cependant un soucis avec le groupe d'options. Dans la table, je dispose de plusieurs champs de type booléens, nommés Galbée, grasse,...

Ce que je souhaite c'est que, en sélectionnant l'option BasculGrasse dans le groupe d'options, la requête soit paramétrée de façon à n'afficher que les enregistrements pour lesquels le champ grasse est coché, sans tenir compte des autres champs booléens. Si, en revanche, je sélectionne l'option BasculGalbée, alors la requête doit être paramétrée de façon à n'afficher que les enregistrements pour lesquels le champ galbée est cochée, etc...

Comment dois-je procéder ? Quel critère utiliser dans la requête, au niveau des champs booléens ? Dois-je utiliser la fonction Iif ? Est-il possible de précéder sans code ?

Il faut savoir que le bouton 'Lancer une recherche' exécute une macro qui ouvre la requête. Dois-je ajouter une ligne dans la macro ?

Merci de votre aide

Jean Noël
Images attachées
Type de fichier : jpg exemple.jpg (65,4 Ko, 4 affichages)
jncoffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 14h55   #2
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
il est bien difficile (bien que faisable) de relier un groupe d'options et des cases à cocher
il est bien plus simple d'avoir dans la table le champ numérique entier qui stocke les différentes options du groupe.
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 15h07   #3
Membre du Club
 
Inscription : novembre 2003
Messages : 155
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 155
Points : 66
Points : 66
Envoyer un message via ICQ à jncoffy
Merci Simplifi pour la réponse. J'ai pensé à cette possibilité, ce qui serait effectivement bien plus simple. Mais je n'ai pas la permission de modifier la structure de la table.
jncoffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 15h13   #4
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
alors le mieux c'est VBA
donne un peu plus de renseignements pour l'écriture du prog
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 15h17   #5
Membre du Club
 
Inscription : novembre 2003
Messages : 155
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 155
Points : 66
Points : 66
Envoyer un message via ICQ à jncoffy
Quels type de renseignements te faut-il ?
jncoffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 20h08   #6
Membre du Club
 
Inscription : novembre 2003
Messages : 155
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 155
Points : 66
Points : 66
Envoyer un message via ICQ à jncoffy
Alors Voila, je tente de donner plus de détails

Je dispose d'une table 'Ventouses' qui comporte des champs de type texte, d'autres de types numériques, et 6 champs de type oui/non avec case à cocher. Ces champs de type Oui/non se nomment 'Compensation' pour l'un, 'mince' pour un autre, ainsi que 'Galbée', 'Grasse', 'angle' et 'levage'.

Le formulaire1, dont une copie d'écran est jointe à ce message, est un formulaire indépendant qui comporte un groupe d'options nommé 'cadreoption' et contenant 6 options dont l'une seule peut être sélectionnée. Les nom des 6 boutons d'option sont 'Basculgrasse', 'Basculgalbée', 'basculeangle', 'basculecompensation', 'basculmince' et 'basculforce'.

Le bouton 'lancer une recherche' du formulaire exécute une macro qui ouvre une requête1. Cette requête prend sa source dans la table 'Ventouses' et affiche, par exemple, le nom de la ventouse. La requête est paramétrée sur les données saisies dans le formulaire (la ligne critère de la requête comporte des instructions du type '[Formulaires]![Formulaire1]![Modifmatière]', 'ModifMatiere' étant le nom de la première zone de texte du formulaire, voir copie d'écran).

Tout cela fonctionne bien si l'on ne tient pas compote du groupe d'options. Mais ce que je souhaiterai, c'est que si, dans le groupe d'option du formulaire, l'option 'Basculgrasse' est sélectionnée, alors la requête doit se paramétrer également sur le champ 'grasse' pour n'afficher que les enregistrements pour lesquels ce champ est coché, sans tenir compte de la valeur des autres cases à cocher. En revanche, si dans le groupe d'options c'est l'option 'Basculgalbée' qui est sélectionnée, alors la requête doit également se filtrer sur le champ 'galbée' affecté à oui, mais sans tenir compte de la valeur du champ 'grasse' ni des autres cases à cocher. La méthode est identique pour les autres cases à cocher, selon l'option sélectionnée dans le formulaire.

Je ne sais pas comment renseigner la ligne 'critère' dans la requête pour les cases à cocher. Dois-je utiliser la fonction Iif ou existe t'il une autre solution ? Faut-il ajouter une ou plusieurs instructions dans la macro qui est éxécutée par le bouton de commande du formulaire, sachant que pour l'instant cette macro se contente d'ouvrir la requête ? Faut-il passer par du code, même si je pense qu'il est possible de s'en passer. Je précise que je suis sous Access 2007.

Merci d'avance à tous ceux qui prendront le temps de me lire

Jean Noël
jncoffy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 09h24   #7
Membre Expert
 
Homme Jacques Petiot
Indépendant développeur et formateur
Inscription : octobre 2007
Messages : 891
Détails du profil
Informations personnelles :
Nom : Homme Jacques Petiot
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Indépendant développeur et formateur
Secteur : Conseil

Informations forums :
Inscription : octobre 2007
Messages : 891
Points : 1 333
Points : 1 333
Hello
Avant de passer à VBA, l'autre solution est de remplacer, dans le formulaire, ton groupe d'option par des cases à cocher. Ce qui simplifiera beaucoup le filtre. et permettra de cocher plusieurs cases simultanément (comme dans la table)
__________________
-------------------Simplifi----------comme si tout était simple--------
Simplifi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h21.


 
 
 
 
Partenaires

Hébergement Web