{Access} Filtrer ds SF selon champs Formulai
Fermé
rankynette
-
10 févr. 2010 à 09:40
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 - 19 févr. 2010 à 14:12
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 - 19 févr. 2010 à 14:12
A voir également:
- {Access} Filtrer ds SF selon champs Formulai
- Access appdata - Guide
- My sims kingdom ds soluce ✓ - Forum Jeux vidéo
- Supprimer sauvegarde pokemon ds ✓ - Forum Jeux vidéo
- Word mettre à jour tous les champs ✓ - Forum Word
- Mise à jour des champs dans entête/pied de page ✓ - Forum Word
11 réponses
blux
Messages postés
26531
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 décembre 2024
3 317
10 févr. 2010 à 09:54
10 févr. 2010 à 09:54
Salut,
le champ père doit contenir le(s) nom(s) de(s) zone(s) dans laquelle(lesquelles) on récupère des informations
le champ fils doit contenir le(s) nom(s) des champs de tables récupéré(s) via champ père et utilisables dans le sous-formulaire
Est-ce le cas ?
le champ père doit contenir le(s) nom(s) de(s) zone(s) dans laquelle(lesquelles) on récupère des informations
le champ fils doit contenir le(s) nom(s) des champs de tables récupéré(s) via champ père et utilisables dans le sous-formulaire
Est-ce le cas ?
Pour les champs père et fils, j'ai cliqué sur propriété du sous formulaires, dans l'onglet données, j'ai cliqué sur "..." et j'ai sélectionné les champs en commun du formulaire et du sous formulaire. Est-ce que c'est ça que tu veux dire ?
blux
Messages postés
26531
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 décembre 2024
3 317
10 févr. 2010 à 11:01
10 févr. 2010 à 11:01
Je ne sais pas si c'est ce que j'ai voulu dire (je ne fais que trop rarement confiance aux trucs qui réfléchissent à ma place, je préfère taper moi-même ce que je veux)
Exemple :
- un formulaire principal avec une zone de liste déroulante qui s'appelle Liste_1 et qui renvoie num_fournisseur
- un sous-formulaire basé sur une requête qui comprend, entre autres champs, num_fournisseur
Si l'on veut que la saisie d'un numéro de fournisseur dans la liste déroulante du formulaire principal restreigne les données affichées par le sous-formulaire à la valeur choisie, alors on doit avoir Liste_1 comme champ père et num_fournisseur comme champ fils dans les propriétés du sous-formulaire.
Est-ce plus clair ?
Exemple :
- un formulaire principal avec une zone de liste déroulante qui s'appelle Liste_1 et qui renvoie num_fournisseur
- un sous-formulaire basé sur une requête qui comprend, entre autres champs, num_fournisseur
Si l'on veut que la saisie d'un numéro de fournisseur dans la liste déroulante du formulaire principal restreigne les données affichées par le sous-formulaire à la valeur choisie, alors on doit avoir Liste_1 comme champ père et num_fournisseur comme champ fils dans les propriétés du sous-formulaire.
Est-ce plus clair ?
Ma requête de sous formulaire reprend "Num Fournisseur" mais de la table article. Il faut que je rajoute donc à cette requête la table fournisseur et que je prenne plutot le champ "Num fournisseur" de la table fournisseur ? Dans le formulaire principal, le champ "Num Fournisseur" est celui de la table fournisseur.
En tout cas, merci de me répondre, ça me donne plusieurs idées.
En tout cas, merci de me répondre, ça me donne plusieurs idées.
blux
Messages postés
26531
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 décembre 2024
3 317
10 févr. 2010 à 11:23
10 févr. 2010 à 11:23
En principe, on s'en fiche ;-)
Si ton modèle de données est bien fait, alors un "Num fournisseur" d'une table est identique à un "Num fournisseur" d'une autre table, puisqu'elles doivent être reliées entre elles.
Donne le nom de ce que tu as mis dans champ père et champ fils.
Si ton modèle de données est bien fait, alors un "Num fournisseur" d'une table est identique à un "Num fournisseur" d'une autre table, puisqu'elles doivent être reliées entre elles.
Donne le nom de ce que tu as mis dans champ père et champ fils.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok, donc mes champs père et fils sont bons, mais ils ne s'affichent pas automatiquemet dans le sous formulaire. Le problème doit venir de la requête du sous formulaire, puisque c'est depuis que j'ai plusieurs tables dans cette requête. Je doit mal m'y prendre.
J'ai fait un imprim écran de mes relations, mais je ne sais pas comment je peux insérer cette image dans ce post. J'ai mis l'essentiel dans chaque table pour éviter de mettre 5 mêmes champs dans 2 tables. Les liaisons devraient renvoyer à la valeur souhaitée.
Ma requête de sous formulaire prend les éléments de 2 tables, et c'est là que n'apparaissent plus mes champs fils sur le sous formulaire...
J'ai fait un imprim écran de mes relations, mais je ne sais pas comment je peux insérer cette image dans ce post. J'ai mis l'essentiel dans chaque table pour éviter de mettre 5 mêmes champs dans 2 tables. Les liaisons devraient renvoyer à la valeur souhaitée.
Ma requête de sous formulaire prend les éléments de 2 tables, et c'est là que n'apparaissent plus mes champs fils sur le sous formulaire...
blux
Messages postés
26531
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 décembre 2024
3 317
10 févr. 2010 à 12:19
10 févr. 2010 à 12:19
Va sur www.cjoint.com, ensuite colle le lien...
Ok merci beaucoup, voici mes liaisons :
https://www.cjoint.com/?ckn7HrLvaA
Voici ma requête (j'ai du faire 2 imprim ecran, j'ai pas d'écran 16/9 lol)
https://www.cjoint.com/?ckoj6bvB76
https://www.cjoint.com/?ckokLjDXYN
J'espère que les liens fonctionnent...
https://www.cjoint.com/?ckn7HrLvaA
Voici ma requête (j'ai du faire 2 imprim ecran, j'ai pas d'écran 16/9 lol)
https://www.cjoint.com/?ckoj6bvB76
https://www.cjoint.com/?ckokLjDXYN
J'espère que les liens fonctionnent...
blux
Messages postés
26531
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 décembre 2024
3 317
10 févr. 2010 à 14:28
10 févr. 2010 à 14:28
Peux-tu copier la requête du sous-formulaire et l'exécuter en mode SQL ? C'est celle qui correspond à requête2.bmp ?
Heu... comment qu'on fait ?
La requête est sur 2 images car j'ai un petit écran, donc il faut mettre côte à côte les 2 images pour voir la totalité de ma requête.
Dis moi juste comment on copie la requête pour qu'elle s'affiche en SQL (j'espère que c'est pas compliqué... Je sais qu'on peut afficher la fenêtre de code où est écrit des choses avec "Sub" et "end Sub", est-ce que c'est là qu'il faut aller ?)
La requête est sur 2 images car j'ai un petit écran, donc il faut mettre côte à côte les 2 images pour voir la totalité de ma requête.
Dis moi juste comment on copie la requête pour qu'elle s'affiche en SQL (j'espère que c'est pas compliqué... Je sais qu'on peut afficher la fenêtre de code où est écrit des choses avec "Sub" et "end Sub", est-ce que c'est là qu'il faut aller ?)
blux
Messages postés
26531
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 décembre 2024
3 317
10 févr. 2010 à 15:23
10 févr. 2010 à 15:23
j'avais pas saisi l'histoire de la requête multi-page :-)
pour asser en mode sql qaund tu es en mode création, il faut sélectionner SQL dans la barre d'outils qui apparaît sous le menu principal d'access, tout à fait à gauche : tu as un tableau, une équerre et le mot SQL dans la liste déroulante.
Une fois que tu es en mode SQL tu recopies cette requête, et tu en crées une nouvelle (mais vide), tu passes en mode SQL et tu recopies le texte de la requête initiale, ensuite, tu peux le bidouiller (notamment en forçant les valeurs qui sont normalement remplies par des zones de formulaire) pour voir si tu arrives à sortir des résultats cohérents et à quel moment plus rien n'est renvoyé.
pour asser en mode sql qaund tu es en mode création, il faut sélectionner SQL dans la barre d'outils qui apparaît sous le menu principal d'access, tout à fait à gauche : tu as un tableau, une équerre et le mot SQL dans la liste déroulante.
Une fois que tu es en mode SQL tu recopies cette requête, et tu en crées une nouvelle (mais vide), tu passes en mode SQL et tu recopies le texte de la requête initiale, ensuite, tu peux le bidouiller (notamment en forçant les valeurs qui sont normalement remplies par des zones de formulaire) pour voir si tu arrives à sortir des résultats cohérents et à quel moment plus rien n'est renvoyé.
Bonjour,
Apparement il y a eu un problème la semaine dernière, je ne pouvez plus répondre sur le forum...
Pour ma requête en langage SQL ça donne ceci :
SELECT TBL_LigneCommandeMateriaux.N°LigneCommande, TBL_LigneCommandeMateriaux.N°Imputation, TableArticles.N°Fournisseur, TableArticles.N°Famille, TableArticles.RefArticle, TBL_LigneCommandeMateriaux.RefArticle, TBL_LigneCommandeMateriaux.QuantiteCommande, TableArticles.Prix, TBL_LigneCommandeMateriaux.PrixArticle, [QuantiteCommande]*[PrixArticle] AS TOTAL
FROM TableArticles INNER JOIN TBL_LigneCommandeMateriaux ON TableArticles.RefArticle = TBL_LigneCommandeMateriaux.RefArticle
WHERE (((TBL_LigneCommandeMateriaux.N°Imputation)=[Formulaires]![FRM_CommandesFournMat]![N°Imputation]) AND ((TableArticles.N°Fournisseur)=[Formulaires]![FRM_CommandesFournMat]![NumFournisseur]));
Comment puis-je bidouiller en forçant les valeurs ? Il faut que je change quelque chose dans ce qui est écrit dans le SQL ?
Merci d'avance
Apparement il y a eu un problème la semaine dernière, je ne pouvez plus répondre sur le forum...
Pour ma requête en langage SQL ça donne ceci :
SELECT TBL_LigneCommandeMateriaux.N°LigneCommande, TBL_LigneCommandeMateriaux.N°Imputation, TableArticles.N°Fournisseur, TableArticles.N°Famille, TableArticles.RefArticle, TBL_LigneCommandeMateriaux.RefArticle, TBL_LigneCommandeMateriaux.QuantiteCommande, TableArticles.Prix, TBL_LigneCommandeMateriaux.PrixArticle, [QuantiteCommande]*[PrixArticle] AS TOTAL
FROM TableArticles INNER JOIN TBL_LigneCommandeMateriaux ON TableArticles.RefArticle = TBL_LigneCommandeMateriaux.RefArticle
WHERE (((TBL_LigneCommandeMateriaux.N°Imputation)=[Formulaires]![FRM_CommandesFournMat]![N°Imputation]) AND ((TableArticles.N°Fournisseur)=[Formulaires]![FRM_CommandesFournMat]![NumFournisseur]));
Comment puis-je bidouiller en forçant les valeurs ? Il faut que je change quelque chose dans ce qui est écrit dans le SQL ?
Merci d'avance
blux
Messages postés
26531
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 décembre 2024
3 317
16 févr. 2010 à 10:07
16 févr. 2010 à 10:07
Oui, dans ton where, tu remplaces les valeurs que tu lis habituellement dans ton formulaire par une valeur significative, comme dans cet exemple :
Comme ça, tu pourras voir si ta requête marche normalement.
WHERE (((TBL_LigneCommandeMateriaux.N°Imputation)= 12) AND ((TableArticles.N°Fournisseur)= 32));
Comme ça, tu pourras voir si ta requête marche normalement.
Bonjour,
Merci pour l'explication, j'ai donc essayé en mode SQL de mettre les chiffres du premier enregistrement, puis du 2ème enregistrement, et pour ces 2 essais, Access ecrit "type de données incompatible dans l'expression du critère"
Donc le problème viendrait du critère rentré dans la requête... mais quel est ce problème ? qu'est-ce qui serait incompatible ?
Si, au lieu de mettre des chiffres, je met des lettres, par exemple, le fournisseur qui a pour n° 83 s'appelle "SUPERFOURNISSEUR", donc au lieu de mettre 83 dans mon test, j'écrit "SUPERFOURNISSEUR", Access me demande d'entrer la valeur du paramètre "SUPERFOURNISSEUR", je tape alors 83, et Access écrit "Cette expression présente une syntaxe incorrecte, ou est trop complexe pour être évaluée. Par exemple, une expression numérique peut contenir des éléments trop compliqués. Essayez de la simplifier en en affectant des parties à des variables."
Merci pour l'explication, j'ai donc essayé en mode SQL de mettre les chiffres du premier enregistrement, puis du 2ème enregistrement, et pour ces 2 essais, Access ecrit "type de données incompatible dans l'expression du critère"
Donc le problème viendrait du critère rentré dans la requête... mais quel est ce problème ? qu'est-ce qui serait incompatible ?
Si, au lieu de mettre des chiffres, je met des lettres, par exemple, le fournisseur qui a pour n° 83 s'appelle "SUPERFOURNISSEUR", donc au lieu de mettre 83 dans mon test, j'écrit "SUPERFOURNISSEUR", Access me demande d'entrer la valeur du paramètre "SUPERFOURNISSEUR", je tape alors 83, et Access écrit "Cette expression présente une syntaxe incorrecte, ou est trop complexe pour être évaluée. Par exemple, une expression numérique peut contenir des éléments trop compliqués. Essayez de la simplifier en en affectant des parties à des variables."
blux
Messages postés
26531
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 décembre 2024
3 317
>
rankynette
19 févr. 2010 à 09:28
19 févr. 2010 à 09:28
Colle le texte de la requête...
Je colle le texte de ma requête à quel endroit ?
Voici le texte de ma requête :
SELECT TBL_LigneCommandeMateriaux.N°LigneCommande, TBL_LigneCommandeMateriaux.N°Imputation, TableArticles.N°Fournisseur, TableArticles.N°Famille, TableArticles.RefArticle, TBL_LigneCommandeMateriaux.RefArticle, TBL_LigneCommandeMateriaux.QuantiteCommande, TableArticles.Prix, TBL_LigneCommandeMateriaux.PrixArticle, [QuantiteCommande]*[PrixArticle] AS TOTAL
FROM TableArticles INNER JOIN TBL_LigneCommandeMateriaux ON TableArticles.RefArticle = TBL_LigneCommandeMateriaux.RefArticle
WHERE (((TBL_LigneCommandeMateriaux.N°Imputation)=[Formulaires]![FRM_CommandesFournMat]![N°Imputation]) AND ((TableArticles.N°Fournisseur)=[Formulaires]![FRM_CommandesFournMat]![NumFournisseur]));
Voici le texte de ma requête :
SELECT TBL_LigneCommandeMateriaux.N°LigneCommande, TBL_LigneCommandeMateriaux.N°Imputation, TableArticles.N°Fournisseur, TableArticles.N°Famille, TableArticles.RefArticle, TBL_LigneCommandeMateriaux.RefArticle, TBL_LigneCommandeMateriaux.QuantiteCommande, TableArticles.Prix, TBL_LigneCommandeMateriaux.PrixArticle, [QuantiteCommande]*[PrixArticle] AS TOTAL
FROM TableArticles INNER JOIN TBL_LigneCommandeMateriaux ON TableArticles.RefArticle = TBL_LigneCommandeMateriaux.RefArticle
WHERE (((TBL_LigneCommandeMateriaux.N°Imputation)=[Formulaires]![FRM_CommandesFournMat]![N°Imputation]) AND ((TableArticles.N°Fournisseur)=[Formulaires]![FRM_CommandesFournMat]![NumFournisseur]));
blux
Messages postés
26531
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
16 décembre 2024
3 317
19 févr. 2010 à 14:12
19 févr. 2010 à 14:12
non, je veux celle où tu as mis des nombres au lieu des références aux champs du formulaire...