OVH Cloud OVH Cloud

requete avec OU

15 réponses
Avatar
olivier
Bonjour,

j'ai un formulaire (qui me sert de "moteur de recherche") avec plusieurs
contrôles (zones de saisies, listes...).
Une zone de liste s'actualise en fonction des éléments saisis dans ces
contrôles.

Mon problème est que certains contrôles ne fonctionnent pas (alors
qu'utilisé tout seul dans une autre requète ils marchent très bien) et
d'autres doivent être impérativement remplis pour que ma liste fonctionne
(chose que je ne veux pas).

J'ai vu quelque part qu'il fallais utiliser " [controle] ou [controle] Est
Null " dans la requète, c'est ce que j'ai fait mais ca marche pas terrible.

Merci de votre aide.

Oliver

10 réponses

1 2
Avatar
CHANDANSON Fabrice
Bonjour,

Si je comprend bien vous voulez mettre des if dans une instruction SQL pour
ajouter des clause where.
Si c'est cela je n'ai pas souvenir qu'Access 97 le fasse.
Il y a des if en SQL mais je ne sait pas si il peuvent être dans le where.


Bonjour,

j'ai un formulaire (qui me sert de "moteur de recherche") avec plusieurs
contrôles (zones de saisies, listes...).
Une zone de liste s'actualise en fonction des éléments saisis dans ces
contrôles.

Mon problème est que certains contrôles ne fonctionnent pas (alors
qu'utilisé tout seul dans une autre requète ils marchent très bien) et
d'autres doivent être impérativement remplis pour que ma liste fonctionne
(chose que je ne veux pas).

J'ai vu quelque part qu'il fallais utiliser " [controle] ou [controle] Est
Null " dans la requète, c'est ce que j'ai fait mais ca marche pas terrible.

Merci de votre aide.

Oliver


Avatar
Pierre CFI [mvp]
bonjour
si si on peut mettre VraiFaux ( iif ) dans un critére

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net

"CHANDANSON Fabrice" a écrit dans le message de news:

Bonjour,

Si je comprend bien vous voulez mettre des if dans une instruction SQL pour
ajouter des clause where.
Si c'est cela je n'ai pas souvenir qu'Access 97 le fasse.
Il y a des if en SQL mais je ne sait pas si il peuvent être dans le where.


Bonjour,

j'ai un formulaire (qui me sert de "moteur de recherche") avec plusieurs
contrôles (zones de saisies, listes...).
Une zone de liste s'actualise en fonction des éléments saisis dans ces
contrôles.

Mon problème est que certains contrôles ne fonctionnent pas (alors
qu'utilisé tout seul dans une autre requète ils marchent très bien) et
d'autres doivent être impérativement remplis pour que ma liste fonctionne
(chose que je ne veux pas).

J'ai vu quelque part qu'il fallais utiliser " [controle] ou [controle] Est
Null " dans la requète, c'est ce que j'ai fait mais ca marche pas terrible.

Merci de votre aide.

Oliver




Avatar
olivier
re,

nota : je suis sous access 2003
nota 2 : je n'y connais pas grand chose en SQL

En fait, je veux qu'il ne tienne pas compte du critère si le controle n'est
pas rempli.
Je viens de réussir en utilisant " [controle] ou [controle] Est Null " (il
faut le faire en une seule fois et ne pas fermer entre temps ! Car il crée
une nouvelle ligne de critères en Ou pour chaque cas de figure.)

Ca marche, mais comme j'ai 6 contrôles, il m'a créé a peu près 70 lignes de
critères, ce qui fait que mon formulaire est très très très lent à
s'actualiser.
Si vous connaissez donc une autre solution.

merci


Bonjour,

Si je comprend bien vous voulez mettre des if dans une instruction SQL pour
ajouter des clause where.
Si c'est cela je n'ai pas souvenir qu'Access 97 le fasse.
Il y a des if en SQL mais je ne sait pas si il peuvent être dans le where.


Bonjour,

j'ai un formulaire (qui me sert de "moteur de recherche") avec plusieurs
contrôles (zones de saisies, listes...).
Une zone de liste s'actualise en fonction des éléments saisis dans ces
contrôles.

Mon problème est que certains contrôles ne fonctionnent pas (alors
qu'utilisé tout seul dans une autre requète ils marchent très bien) et
d'autres doivent être impérativement remplis pour que ma liste fonctionne
(chose que je ne veux pas).

J'ai vu quelque part qu'il fallais utiliser " [controle] ou [controle] Est
Null " dans la requète, c'est ce que j'ai fait mais ca marche pas terrible.

Merci de votre aide.

Oliver




Avatar
3stone
Salut,

"olivier"
| j'ai un formulaire (qui me sert de "moteur de recherche") avec plusieurs
| contrôles (zones de saisies, listes...).
| Une zone de liste s'actualise en fonction des éléments saisis dans ces
| contrôles.
<snip>


Je ne sais pas comment tu a contruit cela... mais, regarde ceci pour t'inspirer :

http://users.skynet.be/accesshome/ah_formulaires_filtragepersonnalise.htm


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
CHANDANSON Fabrice
Bonjour,
Par expérience personnelle j'ai souvant abandonné l'écriture de requête avec
la boite de dialogue création de requête lorsque celle ci deviennent
compliquées.
Je perd plus de temps à écrire une grosse requête qu'un programme en VBA.
Donc je ne sais pas si tu programme mais cela pourrait te simplifier la vie
sur certain point.


re,

nota : je suis sous access 2003
nota 2 : je n'y connais pas grand chose en SQL

En fait, je veux qu'il ne tienne pas compte du critère si le controle n'est
pas rempli.
Je viens de réussir en utilisant " [controle] ou [controle] Est Null " (il
faut le faire en une seule fois et ne pas fermer entre temps ! Car il crée
une nouvelle ligne de critères en Ou pour chaque cas de figure.)

Ca marche, mais comme j'ai 6 contrôles, il m'a créé a peu près 70 lignes de
critères, ce qui fait que mon formulaire est très très très lent à
s'actualiser.
Si vous connaissez donc une autre solution.

merci


Bonjour,

Si je comprend bien vous voulez mettre des if dans une instruction SQL pour
ajouter des clause where.
Si c'est cela je n'ai pas souvenir qu'Access 97 le fasse.
Il y a des if en SQL mais je ne sait pas si il peuvent être dans le where.


Bonjour,

j'ai un formulaire (qui me sert de "moteur de recherche") avec plusieurs
contrôles (zones de saisies, listes...).
Une zone de liste s'actualise en fonction des éléments saisis dans ces
contrôles.

Mon problème est que certains contrôles ne fonctionnent pas (alors
qu'utilisé tout seul dans une autre requète ils marchent très bien) et
d'autres doivent être impérativement remplis pour que ma liste fonctionne
(chose que je ne veux pas).

J'ai vu quelque part qu'il fallais utiliser " [controle] ou [controle] Est
Null " dans la requète, c'est ce que j'ai fait mais ca marche pas terrible.

Merci de votre aide.

Oliver






Avatar
olivier
Bonjour,

Effectivement Fabrice, je crois que je vais devoir me pencher sérieusement
sur VBA.

3stone : j'ai regardé ce lien et cela semble correspondre. J'ai testé mais
je n'arrive pas à faire apparaitre les résultats filtré dans une zone de
liste (mon but est de pouvoir visualiser les enregistrement pour après en,
selectionner un). Je n'arrive que dans une zone de texte.

Merci pour vos conseils.
Olivier



Salut,

"olivier"
| j'ai un formulaire (qui me sert de "moteur de recherche") avec plusieurs
| contrôles (zones de saisies, listes...).
| Une zone de liste s'actualise en fonction des éléments saisis dans ces
| contrôles.
<snip>


Je ne sais pas comment tu a contruit cela... mais, regarde ceci pour t'inspirer :

http://users.skynet.be/accesshome/ah_formulaires_filtragepersonnalise.htm


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw






Avatar
3stone
Salut,

"olivier"
j'ai regardé ce lien et cela semble correspondre. J'ai testé mais
| je n'arrive pas à faire apparaitre les résultats filtré dans une zone de
| liste (mon but est de pouvoir visualiser les enregistrement pour après en,
| selectionner un). Je n'arrive que dans une zone de texte.


La chaîne SQL que tu construis au final, ne peut pas être la source
d'une zone de texte... mais bien d'une zone de liste ou d'un formulaire
en mode continu.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
olivier
désolé mais je n'y arrive pas.

comment je dis à ma zone de liste que le filtre s'y applique ? car le
formulaire est bien filtré (dans le selecteur je vois le nombre
d'enregistrement qui diminue) mais ma zone de liste continu à afficher tous
les enregistrements.

dans les propriétés j'ai :
- source contrôle : rien (c'est normal ?)
- origine source : table/requete
- contenu : le SQL généré par access

sinon ce n'est pas un problème de mise à jour de la liste ? (j'ai essayé
.requery sans succès)

Bon et puis pendant que j'y suis, c'est possible de faire la même chose mais
avec une zone de texte comme contôle de filtre plutôt qu'une liste ?

Merci beaucoup
Olivier


Salut,

"olivier"
j'ai regardé ce lien et cela semble correspondre. J'ai testé mais
| je n'arrive pas à faire apparaitre les résultats filtré dans une zone de
| liste (mon but est de pouvoir visualiser les enregistrement pour après en,
| selectionner un). Je n'arrive que dans une zone de texte.


La chaîne SQL que tu construis au final, ne peut pas être la source
d'une zone de texte... mais bien d'une zone de liste ou d'un formulaire
en mode continu.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw




Avatar
3stone
Salut,

"olivier"
| comment je dis à ma zone de liste que le filtre s'y applique ?

en attribuant la chaîne SQL au contenu (RowSource)


| car le formulaire est bien filtré (dans le selecteur je vois le nombre
| d'enregistrement qui diminue) mais ma zone de liste continu à afficher tous
| les enregistrements.
|
| dans les propriétés j'ai :
| - source contrôle : rien (c'est normal ?) Oui
| - origine source : table/requete Oui
| - contenu : le SQL généré par access Oui
|
| sinon ce n'est pas un problème de mise à jour de la liste ? (j'ai essayé
| .requery sans succès)


Nul besoin de requery...
le fait d'attribuer la chaîne fait relire la source!



| Bon et puis pendant que j'y suis, c'est possible de faire la même chose mais
| avec une zone de texte comme contôle de filtre plutôt qu'une liste ?

Bien sûr !

Essaye de bien comprendre ce qui se passe dans l'exemple que te t'ai indiqué.
Et n'oublie pas les ' (apostrophes) autour des valeurs textes dans la contruction
de la chaine...


PS: Je doit m'absenter... quelqu'un prendra la relève...


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
olivier
Bonjour,

je cherche, je cherche mais n'y arrive toujours pas !

Voila ce que j'ai fait:
- créé un formulaire en continu dont la source est la table Hotels avec
comme champs le code, le nom, le classement.
- en en-tête de formulaire une liste déroulante prenant, dans la meme table,
les classement.
- créé un filtre comme indiqué sur le lien que tu m'as donné. ce filtre
semble fonctionner (je le vois dans la barre en bas)
- une zone de liste dans le detail du formulaire qui affiche depuis la table
hotel, les champs code, nom et classement.

et mon problème est que cette zone de liste n'est pas filtrée, j'ai donc
tout le temps, tous les hotels.

Merci
Olivier



Salut,

"olivier"
| comment je dis à ma zone de liste que le filtre s'y applique ?

en attribuant la chaîne SQL au contenu (RowSource)


| car le formulaire est bien filtré (dans le selecteur je vois le nombre
| d'enregistrement qui diminue) mais ma zone de liste continu à afficher tous
| les enregistrements.
|
| dans les propriétés j'ai :
| - source contrôle : rien (c'est normal ?) Oui
| - origine source : table/requete Oui
| - contenu : le SQL généré par access Oui
|
| sinon ce n'est pas un problème de mise à jour de la liste ? (j'ai essayé
| .requery sans succès)


Nul besoin de requery...
le fait d'attribuer la chaîne fait relire la source!



| Bon et puis pendant que j'y suis, c'est possible de faire la même chose mais
| avec une zone de texte comme contôle de filtre plutôt qu'une liste ?

Bien sûr !

Essaye de bien comprendre ce qui se passe dans l'exemple que te t'ai indiqué.
Et n'oublie pas les ' (apostrophes) autour des valeurs textes dans la contruction
de la chaine...


PS: Je doit m'absenter... quelqu'un prendra la relève...


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw




1 2