ACCESS: Requete a criteres multiples
franck001
Messages postés
45
Statut
Membre
-
Aissatou -
Aissatou -
Bonjour,
voici mon petit probleme du jour
Je souhaite faire une requete à criteres multiples, jusque la pas de pb sauf que ces criteres sont en fait des valeurs imposées par des champs de formulaires.
J'ai donc la possibilité de mettre
= [MonChamp] ou Comme [MonChamp]
mais cela ne tient pas compte de la possibilité de garder ces champs libres donc null pour ne pas avoir de critere dessus
Je peux donc créer une nouvl valeur [MonChamp] avec pour critere Est Null mais cela m'oblige à créer toutes les possibilités de remplissage ou non de mes 8 champs (impossible !!! donc)
QQun aurait il une autre idée s'il vous pliat?
Merci
Franck (-_-)°zzZZZ
http://membres.lycos.fr/franck001
Ps: jai penser à mettre une case a cocher devant mon champ et si elle est coché c'est la valeur du champ mais dans le cas ou elle n'est pas cocher je ne sais pas quoi renvoyer pour annuler mon critere
voici mon petit probleme du jour
Je souhaite faire une requete à criteres multiples, jusque la pas de pb sauf que ces criteres sont en fait des valeurs imposées par des champs de formulaires.
J'ai donc la possibilité de mettre
= [MonChamp] ou Comme [MonChamp]
mais cela ne tient pas compte de la possibilité de garder ces champs libres donc null pour ne pas avoir de critere dessus
Je peux donc créer une nouvl valeur [MonChamp] avec pour critere Est Null mais cela m'oblige à créer toutes les possibilités de remplissage ou non de mes 8 champs (impossible !!! donc)
QQun aurait il une autre idée s'il vous pliat?
Merci
Franck (-_-)°zzZZZ
http://membres.lycos.fr/franck001
Ps: jai penser à mettre une case a cocher devant mon champ et si elle est coché c'est la valeur du champ mais dans le cas ou elle n'est pas cocher je ne sais pas quoi renvoyer pour annuler mon critere
A voir également:
- Il n'existe pas de colis pour ces critères de recherche
- Access appdata - Guide
- Acer quick access - Forum logiciel systeme
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- [Access] creer base données client-produits - Forum Programmation
3 réponses
Salut,
si g bien compris, tu as ton form avec des zones de texte (ou listes), et tu veux exécuter une requête là-dessus. Tu as donc dû créer un bouton, c ça ? En tout cas c ce que j'ai compris.
Alors, pourquoi ne pas créer 2 requêtes, 1 en cas de champ renseigné, l'autre en cas de champ vide. Ensuite, en vba sur le code de ton bouton, if me!champ1 is null then docmd.openquery "requete1" else ........
@ +
si g bien compris, tu as ton form avec des zones de texte (ou listes), et tu veux exécuter une requête là-dessus. Tu as donc dû créer un bouton, c ça ? En tout cas c ce que j'ai compris.
Alors, pourquoi ne pas créer 2 requêtes, 1 en cas de champ renseigné, l'autre en cas de champ vide. Ensuite, en vba sur le code de ton bouton, if me!champ1 is null then docmd.openquery "requete1" else ........
@ +
Ceci est vzalable si je n'ai qu'un champ dans mon formulaire mais j'effectue mon tri sur 8 champs distincts autant te dire que le nombre de requetes a faire est inchiffrable :-)
Franck (-_-)°zzZZZ
http://membres.lycos.fr/franck001
Franck (-_-)°zzZZZ
http://membres.lycos.fr/franck001
Salut,
Je crois que ton problème est resolvable en utilisant une table temporaire. Tu recopies la table sur laquelle tu fais ta selection en integralité, et à chaque modification de tes critères de selection, tu recrées cette table temporaire avec les elements qui correspondent à ce choix. Par exemple, sur le "on_change" de la liste de choix concernant le critère "couleur", tu sais que tu n'as à effectuer que le test sur la couleur, ça t'evite de vérifier si le critère "prix" est resté vide. Une fois que la couleur est choisie, tu recrées ta table temporaire, et tu ne travailles plus qu'avec les enregistrements qui correspondent à ton premier critère choisi.
En terme d'efficacité, je ne sais pas ce que ça donne, mais ça évite de créer 8! requètes avec presque autant de if else dans ton code. Si vraiment ta table est très importante, tu peux faire ça en deux ou trois formulaires, que tu enchaines, en regroupant tes critères par categories, mais la je ne peux pas te dire ça sans savoir sur quoi tu travailles...
Bon courage,
Je crois que ton problème est resolvable en utilisant une table temporaire. Tu recopies la table sur laquelle tu fais ta selection en integralité, et à chaque modification de tes critères de selection, tu recrées cette table temporaire avec les elements qui correspondent à ce choix. Par exemple, sur le "on_change" de la liste de choix concernant le critère "couleur", tu sais que tu n'as à effectuer que le test sur la couleur, ça t'evite de vérifier si le critère "prix" est resté vide. Une fois que la couleur est choisie, tu recrées ta table temporaire, et tu ne travailles plus qu'avec les enregistrements qui correspondent à ton premier critère choisi.
En terme d'efficacité, je ne sais pas ce que ça donne, mais ça évite de créer 8! requètes avec presque autant de if else dans ton code. Si vraiment ta table est très importante, tu peux faire ça en deux ou trois formulaires, que tu enchaines, en regroupant tes critères par categories, mais la je ne peux pas te dire ça sans savoir sur quoi tu travailles...
Bon courage,