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

Requête SQL source formulaire

7 réponses
Avatar
baptiste
Bonjour,
J'aimerais filtrer les enregistrments disponibles dans une liste
d=E9roulante de formulaire.
Voici la situation simplifi=E9e:
J'ai dans un formulaire un champ [client], et dans le sous formulaire
des lignes d'article avec [produit] et [contrat].
Les champs [client] et [contrat] sont relationn=E9s dans une de mes
tables.
Ce que je veux c'est que lorsque je clique sur la liste d=E9roulante,
seuls les contrats du client, pr=E9alablement s=E9lectionn=E9, s'affichent.
Dois-je cr=E9er une sous requ=EAte ?
Comment v=E9hiculer les champ [client] comme crit=E8re "momentan=E9" de la
requ=EAte.
Merci =E0 tous pour votre pr=E9cieuse aide...

7 réponses

Avatar
Fabien
Bonjour Baptiste,
Ma solution :
Tu créé un formulaire avec une liste déroulante qui contient tes N° clients.
Tu ajoute a ce formulaire un sous formulaire qui contient les données du
client.
Tu modifie le lien pere/fils du sous formulaire en lui indiquant en père
ta liste déroulante et en fils le N° client
et voilà.
@+
Fabien

Bonjour,
J'aimerais filtrer les enregistrments disponibles dans une liste
déroulante de formulaire.
Voici la situation simplifiée:
J'ai dans un formulaire un champ [client], et dans le sous formulaire
des lignes d'article avec [produit] et [contrat].
Les champs [client] et [contrat] sont relationnés dans une de mes
tables.
Ce que je veux c'est que lorsque je clique sur la liste déroulante,
seuls les contrats du client, préalablement sélectionné, s'affichent.
Dois-je créer une sous requête ?
Comment véhiculer les champ [client] comme critère "momentané" de la
requête.
Merci à tous pour votre précieuse aide...



Avatar
baptiste
Merci de ton aide,
La situation est plus complexe, car un client à plusieurs contrat et
ke dois ensuite y ajouter des paramettre, je vais tenter de m'exprimer
un peut mieux :
J'ai une table d'en-tête avec la "raison sociale" du client.
Une sous-table "ligne" avec les commandes ou apparaissent "contrat" en
Quantité.

Les sources de données :
Une table client ou la "raison sociale" est liée à son "code client".
Une table contrat ou un "code client" peut avoir plusieurs "contrat".

Dans l'entête de formulaire je veux choisir en liste déroulante la
"raison sociale". (pas de problème)
J'aimerais ensuite qu'apparaisse dans une zone de texte son "code
client".

Dans le sous formulaire au moment de choisir les contrats et de leurs
afffecter des quantités je voudrais utiliser le "code client" présent
en en-têtes pour filtrer la liste déroulante. (N'avoir à disposition
que les contrat du client concerné).

Comment fonctionne l'affichage dans la zone de texte, comment
l'utiliser afin de filtrer les contrats?

Merci de votre aide
Avatar
Fabien
Bonjour Baptiste,
Bon résumons :
Une table Client
Clef : Code Client
Data : Raison Sociale
Une table Contrat
Clef : Code Client
Clef : Code Contrat
Data : Qte
Dans ton formulaire principal
Modifiable01 : Une liste déroulante avec source de donnée Select [code
client], [Raison sociale] from TblClient;
Nombre de colonnes : 2
Taille des colonnes : 0cm;5cm
Colonne liée : 1
Tu y stocke donc le code client mais tu affiche la raison sociale.

Ajoute une zone texte indépendante dont la source est Source :
=Modifiable01 (et voilà ton code client)
Nomme cette zone Code_client_retenu (par ex)

Ajoutes un sous-formulaire avec comme source de données ta table contrat.
Tu indique
Champ père : Code_Client_retenu
Champ Fils : Code client (qui doit être dans ton sous formulaire mais
non visible)

Et le tour est joué

Ps dans la base exemple.mdb livrée avec Access il y a un cas un peu
semblable ;-)

@+
Fabien


Merci de ton aide,
La situation est plus complexe, car un client à plusieurs contrat et
ke dois ensuite y ajouter des paramettre, je vais tenter de m'exprimer
un peut mieux :
J'ai une table d'en-tête avec la "raison sociale" du client.
Une sous-table "ligne" avec les commandes ou apparaissent "contrat" en
Quantité.

Les sources de données :
Une table client ou la "raison sociale" est liée à son "code client".
Une table contrat ou un "code client" peut avoir plusieurs "contrat".

Dans l'entête de formulaire je veux choisir en liste déroulante la
"raison sociale". (pas de problème)
J'aimerais ensuite qu'apparaisse dans une zone de texte son "code
client".

Dans le sous formulaire au moment de choisir les contrats et de leurs
afffecter des quantités je voudrais utiliser le "code client" présent
en en-têtes pour filtrer la liste déroulante. (N'avoir à disposition
que les contrat du client concerné).

Comment fonctionne l'affichage dans la zone de texte, comment
l'utiliser afin de filtrer les contrats?

Merci de votre aide



Avatar
baptiste
Merci Fabien,
Je venais de trouver une solution pour le filtrage le problème est sur
la source,
J'ai utilisé une solution similaire à la tienne, sauf que je vois
comme une impossibilité dans ta méthode.
Modifiable 01 : "affiche la raison sociale et stocks le code client"
affiche la raison sociale au moment de choisir OK stocks le client OK
MAIS un fois le choix fait affiche la donnée stocké cad le code
client, donc la zone de texte indépendante fait double emploi.

Pour moi le mieux serait de choisir une raison sociale, l'afficher, la
stocker, et via un champ "calculé" ou automatique, aller chercher le
code client correspondant dans la table client et l'afficher.
Ensuite utiliser ce champ comme critère de filtre de mes liste
déroulante de sous formulaire... (cela fonctionne déja avec un WHERE
Critère = zone_de_texte

Qu'en penses tu? Comment afficher ce contrôle indépendant?

Merci encore,
Avatar
Fabien
Re


Merci Fabien,
Je venais de trouver une solution pour le filtrage le problème est sur
la source,
J'ai utilisé une solution similaire à la tienne, sauf que je vois
comme une impossibilité dans ta méthode.
Modifiable 01 : "affiche la raison sociale et stocks le code client"
affiche la raison sociale au moment de choisir OK stocks le client OK
MAIS un fois le choix fait affiche la donnée stocké cad le code
client, donc la zone de texte indépendante fait double emploi.


Normalement c'est bon : La zone Liste déroulante Modifiable01 affiche
la raison sociale et stocke le code client. Pour ça il faut mettre dans
les taille de colonnes : 0cm;5cm
Bien indiquer que tu travailles avec 2 colonnes et que la colonne liée
est la 1

Dans les propriétés de ta liste
Onglet Format
Nbr Colonnes : 2
Entetes colonne :
Largeur colonnes : 0cm;5cm (ici le fait de mettre 0cm indique a access
que tu ne veux pas que cette première colonne soit visible dans ta
liste. Ici le code client donc)

Onglet Données
Contenu : select [code client],[raison sociale] from Tblclients;
Colonne liée : 1 (Indique a Access que c'est la premiére colonne qu'il
faut retourner dans Modifiable01. Dans ton cas le code client)

Donc ta Liste fait bien apparaitre les raisons sociales et stock, lors
du choix, le code client.
CQFD ;-)


Pour moi le mieux serait de choisir une raison sociale, l'afficher, la
stocker, et via un champ "calculé" ou automatique, aller chercher le
code client correspondant dans la table client et l'afficher.
Ensuite utiliser ce champ comme critère de filtre de mes liste
déroulante de sous formulaire... (cela fonctionne déja avec un WHERE
Critère = zone_de_texte

Qu'en penses tu? Comment afficher ce contrôle indépendant?

Merci encore,



Avatar
baptiste
Merci, tu avais raison, tout fonctionne,
Ce qui me paraissiat bisard était que en affichant : 1cm "code_client"
+ 5cm "raison sociale" et en gardant "code client" la zone affichait
la donnée stockée => "code_client".

Avec 0 et 5 je n'ais que la raison social au moment du choix (bien que
le code suive en masqué) et au moment d'afficher, alors qu'il devrait
afficher la donnée stockée, il m'affiche l'autre celle ci étant à 0.

Bien vu !
Avatar
Fabien
Merci ;-)
Bonne continuation

Merci, tu avais raison, tout fonctionne,
Ce qui me paraissiat bisard était que en affichant : 1cm "code_client"
+ 5cm "raison sociale" et en gardant "code client" la zone affichait
la donnée stockée => "code_client".

Avec 0 et 5 je n'ais que la raison social au moment du choix (bien que
le code suive en masqué) et au moment d'afficher, alors qu'il devrait
afficher la donnée stockée, il m'affiche l'autre celle ci étant à 0.

Bien vu !