Requète access
Résolu/Fermé
gazzzz
Messages postés
4
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
26 janvier 2010
-
26 janv. 2010 à 16:50
gazzzz - 27 janv. 2010 à 21:46
gazzzz - 27 janv. 2010 à 21:46
A voir également:
- Requète access
- Hns-self-wan-access-ipv6 ✓ - Forum Réseau
- Access appdata - Guide
- Quick access service - Forum Logiciels
- Access runtime ✓ - Forum Access
- Bios access - Guide
8 réponses
Salut l'ardéchois.
dans ta dernière condition fais plutot Acteur1+Acteur2+Acteur3 like "*"+[Genre du film]+"*"
c'est plus rapide que (Acteur1 like "*"+[Genre du film]+"*") or (Acteur2 like "*"+[Genre du film]+"*") or (Acteur3 like "*"+[Genre du film]+"*")
dans ta dernière condition fais plutot Acteur1+Acteur2+Acteur3 like "*"+[Genre du film]+"*"
c'est plus rapide que (Acteur1 like "*"+[Genre du film]+"*") or (Acteur2 like "*"+[Genre du film]+"*") or (Acteur3 like "*"+[Genre du film]+"*")
gazzzz
Messages postés
4
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
26 janvier 2010
26 janv. 2010 à 18:29
26 janv. 2010 à 18:29
Salut a toi fiu!!
Merci pour ta réponse!
Je viens de m'apercevoir que j'ai fais une erreur, il faut remplacer les Acteur1, Acteur2, Acteur3 par Genre1, Genre2, Genre3 mais bref la n'est pas le problème!
En fait dans ma table films_HD j'ai 3 champs pour les genres et je souhaite pouvoir retrouver un film par son genre.
Exemple dans la boite de dialogue qui me demande:
"genre du film" je tape ==> horrerur et sa me sors tout mes films d'horreur
Pour le moment, avec cette requête la:
SELECT *
FROM Films_HD
WHERE (((Films_HD.Genre1) Like "*"+[Genre du film?]+"*"));
Sa marche seulement si "horreur" est en genre1 (ce qui est normale), je voudrais que sa marche même si horreur est en genre2 ou en genre3. J'ai donc éssayé ceci:
SELECT *
FROM Films_HD
WHERE (((Films_HD.Genre1 Or Films_HD.Genre2 Or Film_HD.Genre3) Like "*"+[Genre du film?]+"*"));
As tu mieux compris mon problème?
Merci pour ta réponse!
Je viens de m'apercevoir que j'ai fais une erreur, il faut remplacer les Acteur1, Acteur2, Acteur3 par Genre1, Genre2, Genre3 mais bref la n'est pas le problème!
En fait dans ma table films_HD j'ai 3 champs pour les genres et je souhaite pouvoir retrouver un film par son genre.
Exemple dans la boite de dialogue qui me demande:
"genre du film" je tape ==> horrerur et sa me sors tout mes films d'horreur
Pour le moment, avec cette requête la:
SELECT *
FROM Films_HD
WHERE (((Films_HD.Genre1) Like "*"+[Genre du film?]+"*"));
Sa marche seulement si "horreur" est en genre1 (ce qui est normale), je voudrais que sa marche même si horreur est en genre2 ou en genre3. J'ai donc éssayé ceci:
SELECT *
FROM Films_HD
WHERE (((Films_HD.Genre1 Or Films_HD.Genre2 Or Film_HD.Genre3) Like "*"+[Genre du film?]+"*"));
As tu mieux compris mon problème?
Oui j'avais compris ton problème.
Le mien est que je ne connais rien à Access.
Mais l'expression que tu formulais (et que tu formules à nouveau), à savoir
WHERE (champx OR champy OR champz) LIKE motif
ne peut pas fonctionner
une méthode simple pour le contourner est
WHERE (champx + champy + champz) LIKE motif
Le mien est que je ne connais rien à Access.
Mais l'expression que tu formulais (et que tu formules à nouveau), à savoir
WHERE (champx OR champy OR champz) LIKE motif
ne peut pas fonctionner
une méthode simple pour le contourner est
WHERE (champx + champy + champz) LIKE motif
gazzzz
Messages postés
4
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
26 janvier 2010
26 janv. 2010 à 19:26
26 janv. 2010 à 19:26
Non, ces 2 requêtes ne font pas la même chose...
Dans ma table film_HD, un film comme "massacre à la tronçonneuse" aura:
Genre1 = Culte
Genre2 = Horreur
Genre3 = Gore
Ce que je veux c'est que ce film soit proposé quand je tape "horreur" dans ma boite de dialogue
Avec ta requète, pour que le film soit sélectionné il faut que:
genre1=horreur ET genre2 = horreur ET genre3=horreur
Moi ce que je veux c'est genre1 OU genre2 OU genre3 = horreur
D'après mes recherche je suis obligé de stocké le contenue de l'input box dans une variable car autrement access ne peux pas l'utiliser pour plusieurs tests consécutifs.
Dans ma table film_HD, un film comme "massacre à la tronçonneuse" aura:
Genre1 = Culte
Genre2 = Horreur
Genre3 = Gore
Ce que je veux c'est que ce film soit proposé quand je tape "horreur" dans ma boite de dialogue
Avec ta requète, pour que le film soit sélectionné il faut que:
genre1=horreur ET genre2 = horreur ET genre3=horreur
Moi ce que je veux c'est genre1 OU genre2 OU genre3 = horreur
D'après mes recherche je suis obligé de stocké le contenue de l'input box dans une variable car autrement access ne peux pas l'utiliser pour plusieurs tests consécutifs.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Désolé d'être un gros nul en Access :-(
en SQL standard, la solution serait de concaténer les 3 genres et de voir si le genre cherché se trouve dans la concaténation :
WHERE genre1 || genre2 || genre3 like '%' || genre_du_film || '%'
tu noteras au passage qu'en SQL la concaténation se fait avec || et non +, les chaînes sont délimitées par des apostrophe (') et non des guillemets (") et le joker pour le like est le pourcentage (%) et non l'astérisque (*).
Manque de bol, tu travailles avec Access, et ne connaissant que trrrès mal ce produit, je me fie à ta syntaxe pour essayer de trouver une soluce.
en SQL standard, la solution serait de concaténer les 3 genres et de voir si le genre cherché se trouve dans la concaténation :
WHERE genre1 || genre2 || genre3 like '%' || genre_du_film || '%'
tu noteras au passage qu'en SQL la concaténation se fait avec || et non +, les chaînes sont délimitées par des apostrophe (') et non des guillemets (") et le joker pour le like est le pourcentage (%) et non l'astérisque (*).
Manque de bol, tu travailles avec Access, et ne connaissant que trrrès mal ce produit, je me fie à ta syntaxe pour essayer de trouver une soluce.
gazzzz
Messages postés
4
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
26 janvier 2010
26 janv. 2010 à 20:21
26 janv. 2010 à 20:21
Merci pour ton aide, access à l'air d'une vraie usine à gazzzz! Mais j'aime bien l'interface qraphique qu'il propose pour ses BDD.
Je n'avais pas pensé à la concaténation (très bonne idée!) mais plutôt à ranger dans une variable la valeur de ma boite de dialogue. Je vais faire plus de recherches! 1000 fois Merci pour ton aide, je te tiens au courant!
A++
Je n'avais pas pensé à la concaténation (très bonne idée!) mais plutôt à ranger dans une variable la valeur de ma boite de dialogue. Je vais faire plus de recherches! 1000 fois Merci pour ton aide, je te tiens au courant!
A++
Tu met ta requete en mode creation, apres avoir ajouter tes champs x1, x2, x3, etc, tu va dans sur un nouveau champ et tu tape x1&X2&X3 et tu as un champ concatener. si tu veux lui donner un nom particulier, devant la fomule tu tape le nom du champ et tu tape : .
ensuite tu va dans la zone critere de ce champ et tu y met comme ou like et dans le generateur d'expression tu selectionne le champ de ton formulaire. ta requete devrait marcher
ensuite tu va dans la zone critere de ce champ et tu y met comme ou like et dans le generateur d'expression tu selectionne le champ de ton formulaire. ta requete devrait marcher
blux
Messages postés
25982
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
21 avril 2024
3 287
27 janv. 2010 à 11:04
27 janv. 2010 à 11:04
Salut,
ta demande est compliquée car ton modèle de données n'est pas le bon.
Il te faudrait une table 'genre' avec un lien n-n entre cette table et ta table films, comme ça, tu pourrais retrouver avec une seule requête l'ensemble des films d'un genre particulier sans avoir de champ 'genre1', 'genre2' et 'genre3'...
Ca marcherait de la même façon avec acteurs...
ta demande est compliquée car ton modèle de données n'est pas le bon.
Il te faudrait une table 'genre' avec un lien n-n entre cette table et ta table films, comme ça, tu pourrais retrouver avec une seule requête l'ensemble des films d'un genre particulier sans avoir de champ 'genre1', 'genre2' et 'genre3'...
Ca marcherait de la même façon avec acteurs...