Lié une requête aux entrées d'un formulaire
Résolu/Fermé
A voir également:
- Lié une requête aux entrées d'un formulaire
- Formulaire de réclamation facebook - Guide
- Formulaire instagram compte suspendu - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
- Confirmation de l'envoi d'un formulaire html ✓ - Forum HTML
- Problème d'envoi de formulaire ✓ - Forum PHP
4 réponses
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
Ambassadeur
1 550
29 nov. 2019 à 14:31
29 nov. 2019 à 14:31
bonjour, quel est ton soucis?
la requête ne donne pas le résultat attendu?
je n'utilise jamais le IIF dans la clause WHERE, je suggère plutôt:
la requête ne donne pas le résultat attendu?
je n'utilise jamais le IIF dans la clause WHERE, je suggère plutôt:
([Formulaires]![Form1]![auteur_contenu] = "" OR T_CONTENU.auteur_contenu=[Formulaires]![Form1]![auteur_contenu])
Bonjour à tous, en travaillant avec WHERE, en basant le formulaire sur la requête directement, et avec quelques recherches supplémentaires, j'ai pu avancer un peu !
J'arrive maintenant à faire une recherche en fonction des entrées du formulaire. Les champs sont pris en compte que s'ils sont remplis. Merci pour votre aide !
Cependant, j'ai un autre soucis : mes entrées comportent plusieurs mots clés, rangé dans des tables T_MOTCLE1 et T_MOTCLE2.
Dans mon formulaire j'ai un champ "mot clé" et je souhaite que les entrées comportant le mot clé choisi ressortent, qu'elles soient rangés en MOTCLE1 ou en MOTCLE2.
Voici un de mes codes pour essayer de mettre ça en place :
Sauf que forcément, il m'affiche toutes les entrées, peu importe leurs mots clés maintenant... Je n'arrive pas à traduire en SQL : toutes les entrées qui ont le bon mot clé 1, peu importe le mot clé 2 ET toutes les entrées qui ont le bon mot clé 2, peu importe le mot clé 1...
Pour l'instant je ne travaille qu'avec deux tables mot-clé, mais à terme il y en aura six...
Auriez-vous une idée là-dessus ? Je me perds dans l'algorithmie là !
J'arrive maintenant à faire une recherche en fonction des entrées du formulaire. Les champs sont pris en compte que s'ils sont remplis. Merci pour votre aide !
Cependant, j'ai un autre soucis : mes entrées comportent plusieurs mots clés, rangé dans des tables T_MOTCLE1 et T_MOTCLE2.
Dans mon formulaire j'ai un champ "mot clé" et je souhaite que les entrées comportant le mot clé choisi ressortent, qu'elles soient rangés en MOTCLE1 ou en MOTCLE2.
Voici un de mes codes pour essayer de mettre ça en place :
WHERE (((T_AUTEUR.num_auteur) Like "*" & [Formulaires]![F_RMC]![choix_auteur] & "*") AND ((T_CATEGORIE.num_categorie) Like "*" & [Formulaires]![F_RMC]![choix_categorie] & "*") AND ((T_JEU.num_jeu) Like "*" & [Formulaires]![F_RMC]![choix_jeu] & "*") AND ((T_MOTCLE1.num_motcle1) Like "*" & [Formulaires]![F_RMC]![choix_motcle] & "*" Or (T_MOTCLE1.num_motcle1) Like "*") AND ((T_MOTCLE2.nom_motcle2) Like "*" Or (T_MOTCLE2.nom_motcle2) Like "*" & [Formulaires]![F_RMC]![choix_motcle] & "*"));
Sauf que forcément, il m'affiche toutes les entrées, peu importe leurs mots clés maintenant... Je n'arrive pas à traduire en SQL : toutes les entrées qui ont le bon mot clé 1, peu importe le mot clé 2 ET toutes les entrées qui ont le bon mot clé 2, peu importe le mot clé 1...
Pour l'instant je ne travaille qu'avec deux tables mot-clé, mais à terme il y en aura six...
Auriez-vous une idée là-dessus ? Je me perds dans l'algorithmie là !
J'ai également testé ce deuxième code, qui ne fonctionne pas non plus :(
WHERE ((((T_AUTEUR.num_auteur) Like "*" & [Formulaires]![F_RMC]![choix_auteur] & "*") AND ((T_CATEGORIE.num_categorie) Like "*" & [Formulaires]![F_RMC]![choix_categorie] & "*") AND ((T_JEU.num_jeu) Like "*" & [Formulaires]![F_RMC]![choix_jeu] & "*") AND ((T_MOTCLE1.num_motcle1) Like "*" & [Formulaires]![F_RMC]![choix_motcle] & "*") AND ((T_MOTCLE2.num_motcle2) Like "*")) AND (((T_AUTEUR.num_auteur) Like "*" & [Formulaires]![F_RMC]![choix_auteur] & "*") AND ((T_CATEGORIE.num_categorie) Like "*" & [Formulaires]![F_RMC]![choix_categorie] & "*") AND ((T_JEU.num_jeu) Like "*" & [Formulaires]![F_RMC]![choix_jeu] & "*") AND ((T_MOTCLE2.num_motcle2) Like "*" & [Formulaires]![F_RMC]![choix_motcle] & "*") AND ((T_MOTCLE1.num_motcle1) Like "*")));
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
>
Logane
Modifié le 6 déc. 2019 à 12:41
Modifié le 6 déc. 2019 à 12:41
"qui ne fonctionne pas non plus": cela donne quoi?
ce serait bien que tu nous montres deux requêtes qui fonctionnent, une qui retourne toutes les entrées qui ont le bon mot clé 1, l'autre qui retourne toutes les entrées qui ont le bon mot clé 2.
sinon, c'est difficile de t'aider à combiner deux requêtes que tu ne nous montre pas.
merci de bien passer à la ligne et d'indenter les lignes pour en faciliter la lecture. tu as également beaucoup trop de parenthèses, cela rend le tout moins lisible.
exemple:
ce serait bien que tu nous montres deux requêtes qui fonctionnent, une qui retourne toutes les entrées qui ont le bon mot clé 1, l'autre qui retourne toutes les entrées qui ont le bon mot clé 2.
sinon, c'est difficile de t'aider à combiner deux requêtes que tu ne nous montre pas.
merci de bien passer à la ligne et d'indenter les lignes pour en faciliter la lecture. tu as également beaucoup trop de parenthèses, cela rend le tout moins lisible.
exemple:
WHERE T_AUTEUR.num_auteur Like "*" & [Formulaires]![F_RMC]![choix_auteur] & "*" AND T_CATEGORIE.num_categorie Like "*" & [Formulaires]![F_RMC]![choix_categorie] & "*" AND T_JEU.num_jeu Like "*" & [Formulaires]![F_RMC]![choix_jeu] & "*" AND (T_MOTCLE1.num_motcle1 Like "*" & [Formulaires]![F_RMC]![choix_motcle] & "*" Or T_MOTCLE1.num_motcle1 Like "*") AND (T_MOTCLE2.nom_motcle2 Like "*" Or T_MOTCLE2.nom_motcle2 Like "*" & [Formulaires]![F_RMC]![choix_motcle] & "*");
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
6 déc. 2019 à 12:47
6 déc. 2019 à 12:47
Avant de faire la requête SQL, il faut bien exprimer ce que tu recherches:
tu recherches "les entrées comportant le mot clé choisi, qu'elles soient rangés en MOTCLE1 ou en MOTCLE2"
ensuite, tu écris:
"toutes les entrées qui ont le bon mot clé 1, peu importe le mot clé 2 ET toutes les entrées qui ont le bon mot clé 2, peu importe le mot clé 1..."
en écrivant cela, tu compliques beaucoup. ce serait plus simple d'écrire:
"toutes les entrées qui ont le bon mot clé 1 ET toutes les entrées qui ont le bon mot clé 2"
ce qui devient:
"toutes les entrées qui ont le bon mot clé 1 OU qui ont le bon mot clé 2"
et ensuite tu écris ta requête.
tu recherches "les entrées comportant le mot clé choisi, qu'elles soient rangés en MOTCLE1 ou en MOTCLE2"
ensuite, tu écris:
"toutes les entrées qui ont le bon mot clé 1, peu importe le mot clé 2 ET toutes les entrées qui ont le bon mot clé 2, peu importe le mot clé 1..."
en écrivant cela, tu compliques beaucoup. ce serait plus simple d'écrire:
"toutes les entrées qui ont le bon mot clé 1 ET toutes les entrées qui ont le bon mot clé 2"
ce qui devient:
"toutes les entrées qui ont le bon mot clé 1 OU qui ont le bon mot clé 2"
et ensuite tu écris ta requête.
Merci beaucoup à toi pour ta réponse ! J'avais pourtant déjà essayé avec le OU, mais la requête, trouvant des résultats en mot clé 1, n'allaient pas plus loin... Je reposte ci-dessous ma solution au cas où d'autres passeraient par là à la recherche d'une réponse !
Il y a peut-être encore trop de parenthèses, mais beaucoup sont générées automatiquement par access, et j'avoue ne pas trop oser en supprimer de peur que ça ne lui plaise pas ! ^^'
Encore merci à toi pour ton aide (et aux autres aussi ), vous m'avez sauvé la vie (oui rien que ça !) <3
WHERE ( ( (T_AUTEUR.num_auteur) Like "*" & [Formulaires]![F_RMC]![choix_auteur] & "*") AND ( (T_CATEGORIE.num_categorie) Like "*" & [Formulaires]![F_RMC]![choix_categorie] & "*") AND ( (T_JEU.num_jeu) Like "*" & [Formulaires]![F_RMC]![choix_jeu] & "*") AND (( (T_MOTCLE1.num_motcle1) Like "*" & [Formulaires]![F_RMC]![choix_motcle] & "*") OR ( (T_MOTCLE2.num_motcle2) Like "*" & [Formulaires]![F_RMC]![choix_motcle] & "*")) );
Il y a peut-être encore trop de parenthèses, mais beaucoup sont générées automatiquement par access, et j'avoue ne pas trop oser en supprimer de peur que ça ne lui plaise pas ! ^^'
Encore merci à toi pour ton aide (et aux autres aussi ), vous m'avez sauvé la vie (oui rien que ça !) <3
29 nov. 2019 à 14:35
Merci pour votre réponse !
Mon soucis est qu'Access m'indique une erreur de syntaxe sans plus d'infos... Et je n'arrive pas à savoir où celle-ci se situe
Je vais essayer votre solution et je reviens vers vous !
Merci :)
1 déc. 2019 à 13:51
J'ai essayé en suivant un tuto youtube de "formulaire de recherche multicritères" mais pour l'instant rien ne marche !
Merci d'essayer de m'aider en tout cas ^^
1 déc. 2019 à 13:56