Requête access
enlérga
-
LatelyGeek Messages postés 1774 Date d'inscription Statut Membre Dernière intervention -
LatelyGeek Messages postés 1774 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais savoir comment faire pour realiser une requête ET et OU à la fois, c'est à dire remplir les "carreaux" d'information selon les informations que l'on connait (laissé le champ vide quand on connait pas l'info et cliker sur OK).
Si cela n'est pas assez claire dite moi le je réexplique !
Merci d'avance!
Je voudrais savoir comment faire pour realiser une requête ET et OU à la fois, c'est à dire remplir les "carreaux" d'information selon les informations que l'on connait (laissé le champ vide quand on connait pas l'info et cliker sur OK).
Si cela n'est pas assez claire dite moi le je réexplique !
Merci d'avance!
5 réponses
Bonjour,
je ne suis pas sûre d'avoir bien compris, en fait je pense avoir compris mais je ne vois pas ce que ET et OU viennent faire là-dedans.
Dans le principe, tu veux qu'on choisisse une valeur si on la connaît, sinon on laisse à blanc et Access ignore le critère?
Voilà comment faire.
Pour un champ texte:
Comme VraiFaux(EstNull([Critère]);"*";[Critère])
Pour un champ numérique ou date
Entre Vraifaux(EstNull([Critère]);-10000000;[Critère]) Et Vraifaux(EstNull([Critère]);10000000;[Critère])
je ne suis pas sûre d'avoir bien compris, en fait je pense avoir compris mais je ne vois pas ce que ET et OU viennent faire là-dedans.
Dans le principe, tu veux qu'on choisisse une valeur si on la connaît, sinon on laisse à blanc et Access ignore le critère?
Voilà comment faire.
Pour un champ texte:
Comme VraiFaux(EstNull([Critère]);"*";[Critère])
Pour un champ numérique ou date
Entre Vraifaux(EstNull([Critère]);-10000000;[Critère]) Et Vraifaux(EstNull([Critère]);10000000;[Critère])
Bonjour ,
Je vais être plus claire, enfin je vais essayer!
J'ai toujours le même problème...je réexplique(même si c'est probablement moi qui ne comprends pas!)
J'utilise 6 filtres cumulatifs pour rechercher des données d'une même table que je réordonne dans un formulaire,les filtres s'affichent sous forme de petites fenêtres dans lesquel il faut saisir des chiffres ou des mots puis cliker sur "OK" pour passer au prochain filtre. Je voudrais remplir seulement les filtres dont je connais les informations(de 1 à 6) et laisser le champ vide quand je ne la connais pas et cliker "OK" pour passer au prochain.
Un "ET" seul exige que les 6 soient complétés(donc c’est pas bon) alors que le "OU"ne fonctionne pas quand on rempli plusieurs filtres, il ne prend en compte que le premier filtre rempli et ne prend pas en compte les autres même compété (les données renvoyés correspondent au premier filtre rempli seulement)
donc dans ces deux cas cela ne marche pas. Il faudrais une expression qui ferait "ETetOU" en même temps, je sais pas si cela existe.
Voici un exemple de requête en SQL avec des « OU » (qui ne fonctionne pas comme je le souhaite)
SELECT Table.[Macro Projet], Table.[Porteur Etude], Table.[Région]
FROM Table
WHERE (((Table.[Macro Projet])=[numéro de Macro Projet])) OR (((Table.[Porteur Etude]) Like "*"+[Nom du Chef de projet]+"*")) OR (((Table.[Région] Like "*"+[Dans quelle région]+"*"));
Merci
Je vais être plus claire, enfin je vais essayer!
J'ai toujours le même problème...je réexplique(même si c'est probablement moi qui ne comprends pas!)
J'utilise 6 filtres cumulatifs pour rechercher des données d'une même table que je réordonne dans un formulaire,les filtres s'affichent sous forme de petites fenêtres dans lesquel il faut saisir des chiffres ou des mots puis cliker sur "OK" pour passer au prochain filtre. Je voudrais remplir seulement les filtres dont je connais les informations(de 1 à 6) et laisser le champ vide quand je ne la connais pas et cliker "OK" pour passer au prochain.
Un "ET" seul exige que les 6 soient complétés(donc c’est pas bon) alors que le "OU"ne fonctionne pas quand on rempli plusieurs filtres, il ne prend en compte que le premier filtre rempli et ne prend pas en compte les autres même compété (les données renvoyés correspondent au premier filtre rempli seulement)
donc dans ces deux cas cela ne marche pas. Il faudrais une expression qui ferait "ETetOU" en même temps, je sais pas si cela existe.
Voici un exemple de requête en SQL avec des « OU » (qui ne fonctionne pas comme je le souhaite)
SELECT Table.[Macro Projet], Table.[Porteur Etude], Table.[Région]
FROM Table
WHERE (((Table.[Macro Projet])=[numéro de Macro Projet])) OR (((Table.[Porteur Etude]) Like "*"+[Nom du Chef de projet]+"*")) OR (((Table.[Région] Like "*"+[Dans quelle région]+"*"));
Merci
C'est pas +, c'est & qu'il faut utiliser dans ta syntaxe (+ additionne des valeurs NUMERIQUES), et ces sont des ET qu'il faut mettre. A mon avis.
Essaye et tiens moi au ourant.
Essaye et tiens moi au ourant.
Enfaite j'ai fais une requête qui demande plusieurs informations ( j'ai une seule table):
Numéro de projet
nom chef de projet
région
site
rubrique
donc des petites fenêtres s'affichent l'une aprés l'autre et demandant de saisir" le num de projet" ensuite je click OK une nouvelle petite fenêtre s'affiche demandant" le nom du chef de projet"ect...
Parfois on connait pas toutes ces infos, donc je veux que remplir juste ce que je connais et laissé le champ vide en clickant OK pour passer au suivant et donc ignorer ce filtre.
Un "ET" demande de tout compléter sinon il renvoye rien...
Numéro de projet
nom chef de projet
région
site
rubrique
donc des petites fenêtres s'affichent l'une aprés l'autre et demandant de saisir" le num de projet" ensuite je click OK une nouvelle petite fenêtre s'affiche demandant" le nom du chef de projet"ect...
Parfois on connait pas toutes ces infos, donc je veux que remplir juste ce que je connais et laissé le champ vide en clickant OK pour passer au suivant et donc ignorer ce filtre.
Un "ET" demande de tout compléter sinon il renvoye rien...
Chez moi ça fonctionne avec des & et des ET.
Est ce que dans les valeurs à choisir il y a par hasard des dates ou des valeurs numériques??? Si oui, le * ne fonctionnera pas.
Est ce que dans les valeurs à choisir il y a par hasard des dates ou des valeurs numériques??? Si oui, le * ne fonctionnera pas.
C'est bon ça fonctionne. Merci!
J'ai adapaté ces commandes et ça marche:
Pour un champ texte:
Comme VraiFaux(EstNull([Critère]);"*";[Critère])
Pour un champ numérique ou date
Entre Vraifaux(EstNull([Critère]);-10000000;[Critère]) Et Vraifaux(EstNull([Critère]);10000000;[Critère])
Pourrais-tu m'expliquer les termes des ces expressions? (pour savoir comment ça marche :) et pouvoir les réutiliser dans d'autres cas)
J'ai aussi un autre problème, si tu as le temps jètes y un oeil ça serait cool.
http://www.commentcamarche.net/forum/affich 6426543 formulaire et sous formulaires
Merci bien.
J'ai adapaté ces commandes et ça marche:
Pour un champ texte:
Comme VraiFaux(EstNull([Critère]);"*";[Critère])
Pour un champ numérique ou date
Entre Vraifaux(EstNull([Critère]);-10000000;[Critère]) Et Vraifaux(EstNull([Critère]);10000000;[Critère])
Pourrais-tu m'expliquer les termes des ces expressions? (pour savoir comment ça marche :) et pouvoir les réutiliser dans d'autres cas)
J'ai aussi un autre problème, si tu as le temps jètes y un oeil ça serait cool.
http://www.commentcamarche.net/forum/affich 6426543 formulaire et sous formulaires
Merci bien.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Explication:
Le Comme"*" renvoie toutes les valeurs (*: caractère générique remplaçant n'importe quel caractère en n'importe quel nombre)
On dit juste à Acces que si le critère est Null, on veut tout, sinon juste les valeurs répondant au critère.
Mais ça ne fonctionne pas pour les valeurs numériques, qui ne sont pas interprétées de la même façon que le texte. A ce moment là on indique juste une fourchette très large en supposant que toutes les valeurs tiendront dedans...
Pour les dates, on fait Entre 01/01/1900 et 31/12/9999 - généralement, ça suffit!!!
Je regarde le reste. A +
Le Comme"*" renvoie toutes les valeurs (*: caractère générique remplaçant n'importe quel caractère en n'importe quel nombre)
On dit juste à Acces que si le critère est Null, on veut tout, sinon juste les valeurs répondant au critère.
Mais ça ne fonctionne pas pour les valeurs numériques, qui ne sont pas interprétées de la même façon que le texte. A ce moment là on indique juste une fourchette très large en supposant que toutes les valeurs tiendront dedans...
Pour les dates, on fait Entre 01/01/1900 et 31/12/9999 - généralement, ça suffit!!!
Je regarde le reste. A +
J'ai toujours le même problème...je réexplique(même si c'est probablement moi qui ne comprends pas!)
Merci d'essayer de m'aider, voilà plus d'info!!
J'utilise 6 filtres cumulatifs pour rechercher des données d'une même table que je réordonne dans un formulaire,les filtres s'affichent sous forme de petites fenêtres dans lesquel il faut saisir des chiffres ou des mots puis cliker sur "OK" pour passer au prochain filtre. Je voudrais remplir seulement les filtres dont je connais les informations(de 1 à 6) et laisser le champ vide quand je ne la connais pas et cliker "OK" pour passer au prochain.
Un "ET" seul exige que les 6 soient complétés(donc c’est pas bon) alors que le "OU"ne fonctionne pas quand on rempli plusieurs filtres, il ne prend en compte que le premier filtre rempli et ne prend pas en compte les autres même compété (les données renvoyés correspondent au premier filtre rempli seulement)
donc dans ces deux cas cela ne marche pas. Il faudrais une expression qui ferait "ETetOU" en même temps, je sais pas si cela existe.
Voici un exemple de requête en SQL avec des « OU » (qui ne fonctionne pas comme je le souhaite)
SELECT Table.[Macro Projet], Table.[Porteur Etude], Table.[Région]
FROM Table
WHERE (((Table.[Macro Projet])=[numéro de Macro Projet])) OR (((Table.[Porteur Etude]) Like "*"+[Nom du Chef de projet]+"*")) OR (((Table.[Région] Like "*"+[Dans quelle région]+"*"));
Merci d'avance!