[ACCESS 2010] Requête avec plusieurs critères [Résolu/Fermé]

Signaler
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019
-
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019
-
Bonjour,
Dans la base Access que je suis en train de créer , il y a notamment une recherche multi-critères.
Cette recherche se fait grâce à une requête qui utilise 8 champs différents .
Or, la recherche ne donne jamais de résultats , même si cela devrait.
Je vous donne à la fin le SQL de la requête.
Est-ce que cette requête ne me force pas à remplir les 8 critères à la fois ?
Y-a-t-il moyen de ne rentrer qu’un ou deux critères (sur 8) ? les autres critères pouvant être n’importe lesquels.
En résumé , on a :
((Mérimée.[Champs :]) Like "*" & Formulaires![Mérimée - Recherche]![Champs :] & "*")
Table d’origine : Mérimée
Table où on rentre les critères de recherche : Mérimée – Recherche

---------------------------------------------------------------------------------------------
SELECT Mérimée.ID, Mérimée.[FICHE MERIMEE REF :], Mérimée.[Titre :], Mérimée.[Localisation :], Mérimée.[Commune :], Mérimée.[Département :], Mérimée.[Région :], Mérimée.[Aire d'étude :], Mérimée.[Lieu-dit :], Mérimée.[Adresse :], Mérimée.[Dénomination :], Mérimée.[Parties constituantes :], Mérimée.[Epoque de construction :], Mérimée.[Année :], Mérimée.[Architecte :], Mérimée.[Atelier :], Mérimée.[Sculpteurs :], Mérimée.[Patrimoine :], Mérimée.[Historique :], Mérimée.[Description :], Mérimée.[Gros-oeuvre :], Mérimée.[Couverture (matériau)], Mérimée.[Etages :], Mérimée.[Couverture (type) :], Mérimée.Propriété, Mérimée.[Type d'étude :], Mérimée.[Rédacteur(s):], Mérimée.[Références :], Mérimée.[Enquête :], Mérimée.[Photographie 1], Mérimée.[Date de la photographie 1 :], Mérimée.[Auteur 1 :], Mérimée.[Photographie 2], Mérimée.[Date de la photographie 2 :], Mérimée.[Auteur 2 :], Mérimée.[Photographie 3], Mérimée.[Date de la photographie 3 :], Mérimée.[Auteur 3 :], Mérimée.[Photographie 4], Mérimée.[Date de la photographie 4 :], Mérimée.[Auteur 4 :], Mérimée.[Photographie 5], Mérimée.[Date de la photographie 5 :], Mérimée.[Auteur 5 :], Mérimée.[Photographie 6], Mérimée.[Date de la photographie 6 :], Mérimée.[Auteur 6 :]
FROM Mérimée
WHERE (((Mérimée.[Commune :]) Like "*" & Formulaires![Mérimée - Recherche]![Commune :] & "*") And ((Mérimée.[Département :]) Like "*" & Formulaires![Mérimée - Recherche]![Département :] & "*") And ((Mérimée.[Région :]) Like "*" & Formulaires![Mérimée - Recherche]![Région :] & "*") And ((Mérimée.[Dénomination :]) Like "*" & Formulaires![Mérimée - Recherche]![Dénomination :] & "*") And ((Mérimée.[Architecte :]) Like "*" & Formulaires![Mérimée - Recherche]![Architecte :] & "*") And ((Mérimée.[Atelier :]) Like "*" & Formulaires![Mérimée - Recherche]![Atelier :] & "*") And ((Mérimée.[Sculpteurs :]) Like "*" & Formulaires![Mérimée - Recherche]![Sculpteurs :] & "*") And ((Mérimée.[Patrimoine :]) Like "*" & Formulaires![Mérimée - Recherche]![Patrimoine :] & "*"))
ORDER BY Mérimée.[Commune :], Mérimée.[Département :], Mérimée.[Région :], Mérimée.[Dénomination :], Mérimée.[Architecte :], Mérimée.[Atelier :], Mérimée.[Sculpteurs :], Mérimée.[Patrimoine :];

6 réponses


Bonjour,

déjà fait ceci, mais en passant par du vba...

Si cela te dit.

A+
Messages postés
2964
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
184
Bonjour
Desolé je n'ai pas access 2010 que 2007
Je ne peu pas d'aider
Messages postés
2964
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
184
bonjour
reussi a ouvrir la base
tu as beaucoup de photos qui prennent de la place dans la base.D'ici quelques temps elle sera saturée.
Il faut mettre les photos dans un fichier et creer un lien entre la base et le fichier.
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019
>
Messages postés
2964
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019

Je suis d'accord avec toi sur le principe.
Néanmoins, il m'arrive de fournir ce fichier à d'autres personnes, comme je l'ai fait sur mon cloud par exemple. Cela me semble plus pratique que de fournir le fichier Access + toutes les photos.
Néanmoins, je te comprend et ce choix n'est pas forcément le bon.

J'ai regardé la base.

Une question me vient à l'esprit : tu veux faire des recherches sur des champs textes ??????

Là c'est pas gagné.
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019

Merci à tous de votre aide.
Grâce à vos conseils, je vais pouvoir avancer.
Pour ceux qui lirons cette discussion, on peut résumer comme cela.
Une recherche multi-critères peut s'effectuer de trois manières :
- par le langage SQL
- par formulaire / sous formulaire
- par Visual Basic
Messages postés
2964
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
184
Lorsque je veux faire des recherches multicriteres je fais un formulaire et un sous formulaire.
Dans le formulaire j' y mets des listes deroulantes independantes issue de tables a clé primaire. Exemple une liste architectes, une liste de sculpteurs.
Relation un a plusieurs avec la table merimée
Lorsque tu as fais des listes deroulantes dans le formulaire tu ajoutes le sous formulaire.
En mode creation du formulaire tu vas dans les proprités du sous formulaire et dans champ pere et fils tu ajoutes le nom des listes deroulantes que tu as créeé.
Si tu veux tu mets ta base dans un lien dans ci joint que tumets sur le site et je fais la manip
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019

Merci de ta réponse et de ta proposition :-)
Peux-tu m'envoyer ton email par MP ? Je t'enverrai alors le lien vers la base sur mon Cloud.
A+
Messages postés
2964
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
184 >
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019

https://fromsmash.com/93624609-8010-11e7-830d-0a39043893bc
Dans ce lien ta base avec 2 formulaire de recherche commune et sculpteur
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019
>
Messages postés
2964
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019

Merci de ton fichier.
Il me sera bien utile pour comprendre les requêtes multi-critères par formulaire / sous formulaire.
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019

Pour info, voici le lien vers la version actuelle de la base :
https://www.sfrcloud.sfr.fr/web/app/public/error?errorCode=10
Messages postés
11176
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020
635
bonjour,
en effet, tu vérifies les 8 critères, qu'ils soient remplis ou pas.
je pense que tu pourrais simplement faire ainsi, pour chacun des 8 champs:
au lieu de
((Mérimée.[Champs :]) Like "*" & Formulaires![Mérimée - Recherche]![Champs :] & "*")
,
avoir:
(((Mérimée.[Champs :]) Like "*" & Formulaires![Mérimée - Recherche]![Champs :] & "*")
OR
(Formulaires![Mérimée - Recherche]![Champs :] is NULL)
)

cela ferait qu'un critère non rempli serait toujours accepté.
Messages postés
11176
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020
635 >
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019

en effet, tu n'as pas utilisé toutes les parenthèses de ma suggestion.
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019
>
Messages postés
11176
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020

Effectivement, je me mélange un peu. Ceci me semble pas mal , mais j'ai toujours tous les résultats. (je ne met que la partie WHERE)
 WHERE 
(((Mérimée.[Commune :]) Like "*" & Formulaires![Mérimée - Recherche]![Commune :] & "*")
OR
(Formulaires![Mérimée - Recherche]![Commune :] is NULL)
)
AND
(((Mérimée.[Département :]) Like "*" & Formulaires![Mérimée - Recherche]![Département :] & "*")
OR
(Formulaires![Mérimée - Recherche]![Département :] is NULL)
)
AND
(((Mérimée.[Région :]) Like "*" & Formulaires![Mérimée - Recherche]![Région :] & "*")
OR (Formulaires![Mérimée - Recherche]![Région :] is NULL)
)
AND
(((Mérimée.[Dénomination :]) Like "*" & Formulaires![Mérimée - Recherche]![Dénomination :] & "*")
OR
(Formulaires![Mérimée - Recherche]![Dénomination :] is NULL)
)
AND
(((Mérimée.[Architecte :]) Like "*" & Formulaires![Mérimée - Recherche]![Architecte :] & "*")
OR
(Formulaires![Mérimée - Recherche]![Architecte :] is NULL)
)
AND
(((Mérimée.[Atelier :]) Like "*" & Formulaires![Mérimée - Recherche]![Atelier :] & "*")
OR
(Formulaires![Mérimée - Recherche]![Atelier :] is NULL))
AND
(((Mérimée.[Sculpteurs :]) Like "*" & Formulaires![Mérimée - Recherche]![Sculpteurs :] & "*")
OR
(Formulaires![Mérimée - Recherche]![Sculpteurs :] is NULL)
)
AND
(((Mérimée.[Patrimoine :]) Like "*" & Formulaires![Mérimée - Recherche]![Patrimoine :] & "*")
OR
(Formulaires![Mérimée - Recherche]![Patrimoine :] is NULL)
)

où est mon erreur ?
Messages postés
11176
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020
635 >
Messages postés
43
Date d'inscription
samedi 17 juin 2017
Statut
Membre
Dernière intervention
11 novembre 2019

je me suis intéressé à ta demande "ne rentrer qu’un ou deux critères (sur 8)", et négligé "la recherche ne donne jamais de résultats".
le problème est peut-être avec
Formulaires![Mérimée - Recherche]![Champs :]
, qui serait toujours NULL. ce qui expliquerait le comportement observé.
si tu fais
SELECT Formulaires![Mérimée - Recherche]![Champs :];
pour un champ que tu remplis dans le formulaire de recherche, cela renvoie quoi?
Messages postés
11176
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020
635 >
Messages postés
11176
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020

j'ai regardé ton fichier, et:
- je ne comprends pas pourquoi tu utilises une table "Mérimée - Recherche" en plus du formulaire de même nom.
- il me semble que les noms des champs dans le formulaire ne se terminent pas par " :".
Messages postés
11176
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020
635 >
Messages postés
11176
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020

en modifiant ceci, cela fonctionne, je pense:
- remplacer
Formulaires![Mérimée - Recherche]![Champs :]

par
Forms![Mérimée - Recherche]![Champs]

j'ai donc supprimé les " :" et remplacer Formulaires par Forms