Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Filtre dans une liste déroulante récalcitrant

5 réponses
Avatar
curt
Bonjour à tous,

j'ai la requête suivante :

SELECT DISTINCTROW BE_CLIENT.BE_Client FROM BE_CLIENT, [RF Document] WHERE
((([RF Document].AFFAIRE)=[Formulaires]![Accueil]![AFFAIRE]));

normalement, je devrais avoir dans ma liste déroulante QUE les données qui
sont contenues si AFFAIRE est sélectionnée au départ... mais ça ne fonctionne
pas.

Systématiquement, la liste déroulante modifiable affiche tous les BE CLIENT
(bordereau d'envoi Client).
Tout ce que j'ai pu lire sur le sujet m'indique de faire le filtre comme je
l'ai fait, mais ça ne change rien !!!

Comme d'habitude, si quelqu'un à LA solution, je suis grandement preneur.

Amicalement.

Curt

5 réponses

Avatar
3stone
Salut,

"curt"
| j'ai la requête suivante :
|
| SELECT DISTINCTROW BE_CLIENT.BE_Client FROM BE_CLIENT, [RF Document] WHERE
| ((([RF Document].AFFAIRE)=[Formulaires]![Accueil]![AFFAIRE]));
|
| normalement, je devrais avoir dans ma liste déroulante QUE les données qui
| sont contenues si AFFAIRE est sélectionnée au départ... mais ça ne fonctionne
| pas.


tu n'as pas de relation entre [RF Document] et BE_CLIENT ??


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
curt
Bonjour 3D Stone, et merci pour ta disponibilité.

Pour faire simple :

J’ai une base pour gérer des documents d’études. La base se compose des
tables suivantes : AFFAIRES – DOCUMENTS – INDICES. (numéro d’affaire –
document – indices de révision des documents). Dans la table Indices, j’ai un
champs BE_Client (bordereau d’envoi) que je voudrais passer en liste
déroulante modifiable. Je ne veux voir dans cette liste que les BE pour
l’affaire en cours. Rien à faire. J’obtiens soit une liste de TOUS les
BE_Client même avec un WHERE sur l’affaire sélectionnée, soit la liste des
BE_Client de l’affaire en cours mais j’ai une erreur quand je veux créer un
nouveau n° de bordereau d’envoi.

Je passe sur les autres essais infructueux auxquels j’ai été confronté, ce
message est assez long comme ça..
Si tu pouvais me filer un coup de main, ça serait royal….
D’avance merci
Curt
Avatar
3stone
re,

"curt"
| J’ai une base pour gérer des documents d’études. La base se compose des
| tables suivantes : AFFAIRES – DOCUMENTS – INDICES. (numéro d’affaire –
| document – indices de révision des documents). Dans la table Indices, j’ai un
| champs BE_Client (bordereau d’envoi) que je voudrais passer en liste
| déroulante modifiable. Je ne veux voir dans cette liste que les BE pour
| l’affaire en cours. Rien à faire. J’obtiens soit une liste de TOUS les
| BE_Client même avec un WHERE sur l’affaire sélectionnée, soit la liste des
| BE_Client de l’affaire en cours mais j’ai une erreur quand je veux créer un
| nouveau n° de bordereau d’envoi.


Il te faut donc une relation en (via table intermédiaire) entre Be_Client et Affaires!


Si je reprends ton SQL :
SELECT DISTINCTROW BE_CLIENT.BE_Client FROM BE_CLIENT, [RF Document] WHERE...

Be_Client.Be_Client

indique que tu as un champ du même nom que la table...
Il y a pas mieux pour s'y perdre...

FROM Be_Client, [RF Document] ?

comme dit, tu n'as pas de relation (Left Join ... )
le résultat est donc le produit cartésien.


PS: Ecrire les noms de tables et champs en majuscule ne fait que diminuer la lisibilité.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
curt
Merci 3DSTONE pour l'aide et les remarques. J'ai refait la requête ci-dessous :

SELECT DISTINCTROW BE_CLIENT.N_ENVOI, AFFAIRE.AFFAIRE FROM BE_CLIENT LEFT
JOIN AFFAIRE ON BE_CLIENT.AFFAIRE = AFFAIRE.AFFAIRE WHERE
(((AFFAIRE.AFFAIRE)=[FORMULAIRES]![ACCUEIL]![AFFAIRE]));

J'obtiens bien la liste déroulante. Si je mets WHERE... comme indiqué,je
n'ai plus de données dans la liste....

Le problème du filtre reste entier.
Amicalement.
Curt
Avatar
3stone
re,

"curt"
| SELECT DISTINCTROW BE_CLIENT.N_ENVOI, AFFAIRE.AFFAIRE FROM BE_CLIENT LEFT
| JOIN AFFAIRE ON BE_CLIENT.AFFAIRE = AFFAIRE.AFFAIRE WHERE
| (((AFFAIRE.AFFAIRE)=[FORMULAIRES]![ACCUEIL]![AFFAIRE]));
|
| J'obtiens bien la liste déroulante. Si je mets WHERE... comme indiqué,je
| n'ai plus de données dans la liste....


Travaille sur ta requête et affiche la pour la mettre au point,
avant de la donner comme source à la liste.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/