OVH Cloud OVH Cloud

Ne trouve pas mon champs...

10 réponses
Avatar
Vinz
Re!

Dans une reqête, je fais une formule, dans un champs que je nomme MtM (qui
fait appel à des champs dans une requête extérieure.

Ensuite, je veux sommer la colonne MtM avec une autre (Port) et crée donc un
nouveau champs:

SommMP: [MtM]+[Port]

Malheureusement, les boîte de dialogue où il faut entrer une valeur pour le
champs MtM apparaît.

Chose bizzare, je clique sur "OK" pour exécuter quand même la reqête en
laissant MtM vide.

MtM se calcule bien mais pas SommMP.

Notez que MtM et Port sont bien numériques, pas d'erreur de ce côté là...

Je pète totalement les plombs!

Merci à tous

Vinz

10 réponses

Avatar
Gilles
Re!
Dans une reqête, je fais une formule, dans un champs que je nomme MtM (qui
fait appel à des champs dans une requête extérieure.
Ensuite, je veux sommer la colonne MtM avec une autre (Port) et crée donc
un

nouveau champs:
SommMP: [MtM]+[Port]
Malheureusement, les boîte de dialogue où il faut entrer une valeur pour
le

champs MtM apparaît.
Chose bizzare, je clique sur "OK" pour exécuter quand même la reqête en
laissant MtM vide.
MtM se calcule bien mais pas SommMP.
Notez que MtM et Port sont bien numériques, pas d'erreur de ce côté là...
Je pète totalement les plombs!
Merci à tous
Vinz


Bonjour, Vinz
Dans les champs d'une requête, tu ne peux utiliser que les champs des tables
et requêtes qui constituent la source de ta requête. C'est-à-dire que, si tu
écrit une requête basée sur la table A et la requête B, tu ne peux
sélectionner et accessoirement faire des calculs que sur les champs de A et
B.
Donc, si tu as besoin du résultat d'une colonne de ta requête dans une autre
colonne de la même requête, il faut refaire tout le calcul.
Ex:
Si on a MtM: [A.Champ1] + [B.Champ2]
on obtient SommMP: [A.Champ1] + [B.Champ2]+[Port]

Bonne continuation

Avatar
Vinz
Tu plaisantes?
Es-tu absolument sur de cela?
Là c'est un monde qui s'écroule si on ne peut pas utiliser un champs crée
dans une autre requête...
Merci
Vinz


Re!
Dans une reqête, je fais une formule, dans un champs que je nomme MtM (qui
fait appel à des champs dans une requête extérieure.
Ensuite, je veux sommer la colonne MtM avec une autre (Port) et crée donc
un

nouveau champs:
SommMP: [MtM]+[Port]
Malheureusement, les boîte de dialogue où il faut entrer une valeur pour
le

champs MtM apparaît.
Chose bizzare, je clique sur "OK" pour exécuter quand même la reqête en
laissant MtM vide.
MtM se calcule bien mais pas SommMP.
Notez que MtM et Port sont bien numériques, pas d'erreur de ce côté là...
Je pète totalement les plombs!
Merci à tous
Vinz


Bonjour, Vinz
Dans les champs d'une requête, tu ne peux utiliser que les champs des tables
et requêtes qui constituent la source de ta requête. C'est-à-dire que, si tu
écrit une requête basée sur la table A et la requête B, tu ne peux
sélectionner et accessoirement faire des calculs que sur les champs de A et
B.
Donc, si tu as besoin du résultat d'une colonne de ta requête dans une autre
colonne de la même requête, il faut refaire tout le calcul.
Ex:
Si on a MtM: [A.Champ1] + [B.Champ2]
on obtient SommMP: [A.Champ1] + [B.Champ2]+[Port]

Bonne continuation






Avatar
3stone
Salut,

"Vinz"
| Dans une reqête, je fais une formule, dans un champs que je nomme MtM (qui
| fait appel à des champs dans une requête extérieure.

Que veux tu dire par : dans une requête extérieure ?



| Ensuite, je veux sommer la colonne MtM avec une autre (Port) et crée donc un
| nouveau champs:
|
| SommMP: [MtM]+[Port]
|
| Malheureusement, les boîte de dialogue où il faut entrer une valeur pour le
| champs MtM apparaît.
|
| Chose bizzare, je clique sur "OK" pour exécuter quand même la reqête en
| laissant MtM vide.
|
| MtM se calcule bien mais pas SommMP.

Donne la partie concernée de tes requêtes, ce sera plus clair...


PS: Tu peux évidement utiliser un champ calculé comme un champ quelconque,
mais, il faut que lui et sa requête fasse partie de l'énoncé de la seconde!


--
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
Vinz
MtM est un champs calculé dans une requête A
Il est calculé à partir d'autres champs de A (par exemple CH1) mais aussi
des champs d'une requête B (CH2)
j'ai MTM: [CH1]+B![CH2]

Même principe pour Port

Somm: [Port]+[MtM]

Elle est vraiment toute bête mais ça m'afiche le boîte de dialogue pour
déinir la valeur de MtM comme s'il ne le reconnaissait pas, bien qu'uil le
calcule bien dans la requête... Arf...

Merci pour ton PS... Ca allait de soi pour moi, il m'a jeté le doute Gilles.



Salut,

"Vinz"
| Dans une reqête, je fais une formule, dans un champs que je nomme MtM (qui
| fait appel à des champs dans une requête extérieure.

Que veux tu dire par : dans une requête extérieure ?



| Ensuite, je veux sommer la colonne MtM avec une autre (Port) et crée donc un
| nouveau champs:
|
| SommMP: [MtM]+[Port]
|
| Malheureusement, les boîte de dialogue où il faut entrer une valeur pour le
| champs MtM apparaît.
|
| Chose bizzare, je clique sur "OK" pour exécuter quand même la reqête en
| laissant MtM vide.
|
| MtM se calcule bien mais pas SommMP.

Donne la partie concernée de tes requêtes, ce sera plus clair...


PS: Tu peux évidement utiliser un champ calculé comme un champ quelconque,
mais, il faut que lui et sa requête fasse partie de l'énoncé de la seconde!


--
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,

"Vinz"
| MtM est un champs calculé dans une requête A
| Il est calculé à partir d'autres champs de A (par exemple CH1) mais aussi
| des champs d'une requête B (CH2)
| j'ai MTM: [CH1]+B![CH2]
|
| Même principe pour Port
|
| Somm: [Port]+[MtM]
|
| Elle est vraiment toute bête mais ça m'afiche le boîte de dialogue pour
| déinir la valeur de MtM comme s'il ne le reconnaissait pas, bien qu'uil le
| calcule bien dans la requête... Arf...

Pas très clair... mais :

Lorsque tu utilise le champ MtM, il ne suffit pas qu'il soit calculé
dans une requête sauvegardée... mais il faut que cette requête
fasse partie de la source de la suivante.

Plus simplement : lorsque tu crée une requête dans laquelle tu veux
utiliser un champ (calculé ou non) d'une précédente requête, il faut
que tu la glisse comme une table dans la grille QBE (requêteur graphique)
Il faut aussi qu'il y aie une relation entre ces différentes sources...

Si a requête ou tu calcule MtM ne renvoie qu'un seul enregistrement,
tu peux aller chercher cette valeur par un Dlookup("MtM";"NomRequete")


--
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
Gilles
Tu plaisantes?
Es-tu absolument sur de cela?
Là c'est un monde qui s'écroule si on ne peut pas utiliser un champs crée
dans une autre requête...
Merci
Vinz


Je ne plaisante JAMAIS avec Access (ça le fait planter :-)

Reprenons: dans la requête Req1, un champ calculé MtM; dans la MEME requête
Req1, tu ne peux pas appeler le résultat de ce champ par son nom dans un
autre champ. Si tu veux l'inclure dans un autre champ calculé, tu dois
écrire à nouveau tout le calcul dans ce champ.

Par contre, dans une requête Req2 basée sur la requête Req1, aucun problème:
tu peux l'appeler par son nom et lui appliquer toutes les fonctions que tu
veux.

Explication: avant l'exécution de la requête, un champ calculé n'existe pas
dans le contexte de cette requête, il n'est donc pas possible de faire des
calculs dessus. Si le champ est dans une sous-requête, c'est différent: la
sous-requête étant exécutée avant la requête principale, tous les champs
(calculés ou non) peuvent être reconnus par leur noms dans la requête
principale, ils sont, en quelque sorte, "figés" et on peut donc leur
appliquer des formules.

J'espère que c'est plus clair.

Bonne continuation

Avatar
3stone
Salut Gilles,

"Gilles"
[...]
| Reprenons: dans la requête Req1, un champ calculé MtM; dans la MEME requête
| Req1, tu ne peux pas appeler le résultat de ce champ par son nom dans un
| autre champ. Si tu veux l'inclure dans un autre champ calculé, tu dois
| écrire à nouveau tout le calcul dans ce champ.
[...]

Sans comprendre ce qu'a fait Vinz, ce que tu dis ci-dessus n'est totalement correct...

Une requête "req" avec 2 champs C1 et C2.

Rien ne t'empêche d'écrire:

SELECT C1, C2, [C1]+[C2] As Cx, [Cx]*2 As Cy, Cy*3 As Cz
FROM Latable;


Ceci dit, je ne crois pas que son problème vienne de là...


--
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
Vinz
Merci à vous deux

Mon problème s'es corrigé tout seul comme par magie (c'est encore puls
énervant).

Mais je crois, si on regarde mes autres questions que c'est du à la chose
suivante:

J'ai du spliter des requêtes. Alors, j'ai coupé un champs calculé pour le
coller dans une autres requête. Les références étaient bien présentes mais je
sais pas ça marchait pas. Une fois après avoir tout sauvegardé et quitté et
puis revenu ça marche... Bizzare...

En tous cas merci à vous, votre aide est précieux.

Vinz



Salut Gilles,

"Gilles"
[...]
| Reprenons: dans la requête Req1, un champ calculé MtM; dans la MEME requête
| Req1, tu ne peux pas appeler le résultat de ce champ par son nom dans un
| autre champ. Si tu veux l'inclure dans un autre champ calculé, tu dois
| écrire à nouveau tout le calcul dans ce champ.
[...]

Sans comprendre ce qu'a fait Vinz, ce que tu dis ci-dessus n'est totalement correct...

Une requête "req" avec 2 champs C1 et C2.

Rien ne t'empêche d'écrire:

SELECT C1, C2, [C1]+[C2] As Cx, [Cx]*2 As Cy, Cy*3 As Cz
FROM Latable;


Ceci dit, je ne crois pas que son problème vienne de là...


--
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
Gilles
Salut Gilles,
"Gilles"
[...]
| Reprenons: dans la requête Req1, un champ calculé MtM; dans la MEME
requête

| Req1, tu ne peux pas appeler le résultat de ce champ par son nom dans un
| autre champ. Si tu veux l'inclure dans un autre champ calculé, tu dois
| écrire à nouveau tout le calcul dans ce champ.
[...]
Sans comprendre ce qu'a fait Vinz, ce que tu dis ci-dessus n'est
totalement correct...

Une requête "req" avec 2 champs C1 et C2.
Rien ne t'empêche d'écrire:
SELECT C1, C2, [C1]+[C2] As Cx, [Cx]*2 As Cy, Cy*3 As Cz
FROM Latable;
Ceci dit, je ne crois pas que son problème vienne de là...
--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw


Bonjour, Pierre

Effectivement, ce que j'ai écrit dans le message précédent est complètement
faux, merci de me rappeler à l'ordre.
Heureusement qu'il y a quelques vrais pros qui parcourent ce forum...

Humblement, Gilles

Avatar
3stone
Salut Gilles,

"Gilles"
|
| Effectivement, ce que j'ai écrit dans le message précédent est complètement
| faux,

Je voulais simplement éviter que Vinz ne se mette à douter.
Et d'éventuels débutants, lecteurs du fil, qui auraient été poussé à essayer de mettre tout
dans les tables (à la Excel, comme on le voit souvent) alors que la requête est justement
l'endroit rêvé pour calculer les "pas" intermédiaires et extractions de toutes sortes.

Pour le reste... ;-)


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