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

Erreur de syntaxe dans une requete somme

1 réponse
Avatar
AfterBoy
Bonjour

J'ai une requete (requete1) qui fonctionne lorsque je l'ex=E9cute dans
le g=E9n=E9rateur de requete si mes formulaires sont ouverts. Elle donne
toujours un r=E9sultat num=E9rique unique (la somme).

----------------------------
REQUETE1
-----------------------------
SELECT Sum([Quantit=E9R=E9serv=E9]-[quantit=E9recu]) AS Qt=E9NonDisp
FROM Utilisateur INNER JOIN (Cours INNER JOIN (Activit=E9 INNER JOIN
(Inventaire INNER JOIN R=E9servations ON Inventaire.[No] =3D
R=E9servations.NoItemR=E9serv=E9) ON Activit=E9.[No] =3D
R=E9servations.NoActivit=E9) ON Cours.Num=E9ro =3D Activit=E9.NoCours) ON
Utilisateur.NoUtilisateur =3D Activit=E9.NoTechnicien
HAVING (((R=E9servations.NoItemR=E9serv=E9)=3D[Formulaires]!
[FAjouterR=E9servationMassive]![SFAjoutMassif].[Form]![Noitem]) AND
((R=E9servations.Mat=E9rielRecu)=3DFalse) AND
((Activit=E9.DateD=E9but)<=3D[Formulaires]![FAjouterR=E9servationmassive]!
[datefin]) AND ((Activit=E9.DateFin)>=3D[Formulaires]!
[FAjouterR=E9servationmassive]![dated=E9but]) AND
((R=E9servations.NoActivit=E9)<>nz([Formulaires]!
[FAjouterR=E9servationMassive]![TxNoActivit=E9])) AND
((Activit=E9.EtatMat=E9riel)<3));
--------------------------------


Maintenant je veux utiliser le r=E9sultat de REQUETE1 dans une autre
requete comme suit.
------------------------
REQUETE2 dont un champ est Qt=E9 comme suit.
-----------------------
Quantit=E9 : SELECT Sum([Quantit=E9R=E9serv=E9]-[quantit=E9recu]) AS Qt=E9=
NonDisp
FROM Utilisateur INNER JOIN (Cours INNER JOIN (Activit=E9 INNER JOIN
(Inventaire INNER JOIN R=E9servations ON Inventaire.[No] =3D
R=E9servations.NoItemR=E9serv=E9) ON Activit=E9.[No] =3D
R=E9servations.NoActivit=E9) ON Cours.Num=E9ro =3D Activit=E9.NoCours) ON
Utilisateur.NoUtilisateur =3D Activit=E9.NoTechnicien
HAVING (((R=E9servations.NoItemR=E9serv=E9)=3D[Formulaires]!
[FAjouterR=E9servationMassive]![SFAjoutMassif].[Form]![Noitem]) AND
((R=E9servations.Mat=E9rielRecu)=3DFalse) AND
((Activit=E9.DateD=E9but)<=3D[Formulaires]![FAjouterR=E9servationmassive]!
[datefin]) AND ((Activit=E9.DateFin)>=3D[Formulaires]!
[FAjouterR=E9servationmassive]![dated=E9but]) AND
((R=E9servations.NoActivit=E9)<>nz([Formulaires]!
[FAjouterR=E9servationMassive]![TxNoActivit=E9])) AND
((Activit=E9.EtatMat=E9riel)<3));

si j'essaie ceci le g=E9n=E9rateur de requete me dit de la placer entre
paranth=E8se, ce que je fais ensuite il me dit qu'il manque un op=E9rande.
Pourtant j'ai fait du copier coller en mode SQL...bien sur j'ai enlev=E9
le point-virgule a la fin mais toujours en erreur. J'ai tent=E9 de
remplacer [formulaires] par [forms] sans succ=E8s =E9galement.

Il est ou le bobo :-(

merci

1 réponse

Avatar
3stone
Salut,

Pas sûr de bien comprendre...
mais tu devrais enregistrer ta "requete1" et dans le champ
de la requete2 écrire qque chose comme :

Quantite: DLookup("QteNonDisp";"requete1")


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




"AfterBoy"
J'ai une requete (requete1) qui fonctionne lorsque je l'exécute dans
le générateur de requete si mes formulaires sont ouverts. Elle donne
toujours un résultat numérique unique (la somme).

----------------------------
REQUETE1
-----------------------------
SELECT Sum([QuantitéRéservé]-[quantitérecu]) AS QtéNonDisp
FROM Utilisateur INNER JOIN (Cours INNER JOIN (Activité INNER JOIN
(Inventaire INNER JOIN Réservations ON Inventaire.[No] Réservations.NoItemRéservé) ON Activité.[No] Réservations.NoActivité) ON Cours.Numéro = Activité.NoCours) ON
Utilisateur.NoUtilisateur = Activité.NoTechnicien
HAVING (((Réservations.NoItemRéservé)=[Formulaires]!
[FAjouterRéservationMassive]![SFAjoutMassif].[Form]![Noitem]) AND
((Réservations.MatérielRecu)úlse) AND
((Activité.DateDébut)<=[Formulaires]![FAjouterRéservationmassive]!
[datefin]) AND ((Activité.DateFin)>=[Formulaires]!
[FAjouterRéservationmassive]![datedébut]) AND
((Réservations.NoActivité)<>nz([Formulaires]!
[FAjouterRéservationMassive]![TxNoActivité])) AND
((Activité.EtatMatériel)<3));
--------------------------------


Maintenant je veux utiliser le résultat de REQUETE1 dans une autre
requete comme suit.
------------------------
REQUETE2 dont un champ est Qté comme suit.
-----------------------
Quantité : SELECT Sum([QuantitéRéservé]-[quantitérecu]) AS QtéNonDisp
FROM Utilisateur INNER JOIN (Cours INNER JOIN (Activité INNER JOIN
(Inventaire INNER JOIN Réservations ON Inventaire.[No] Réservations.NoItemRéservé) ON Activité.[No] Réservations.NoActivité) ON Cours.Numéro = Activité.NoCours) ON
Utilisateur.NoUtilisateur = Activité.NoTechnicien
HAVING (((Réservations.NoItemRéservé)=[Formulaires]!
[FAjouterRéservationMassive]![SFAjoutMassif].[Form]![Noitem]) AND
((Réservations.MatérielRecu)úlse) AND
((Activité.DateDébut)<=[Formulaires]![FAjouterRéservationmassive]!
[datefin]) AND ((Activité.DateFin)>=[Formulaires]!
[FAjouterRéservationmassive]![datedébut]) AND
((Réservations.NoActivité)<>nz([Formulaires]!
[FAjouterRéservationMassive]![TxNoActivité])) AND
((Activité.EtatMatériel)<3));

si j'essaie ceci le générateur de requete me dit de la placer entre
paranthèse, ce que je fais ensuite il me dit qu'il manque un opérande.
Pourtant j'ai fait du copier coller en mode SQL...bien sur j'ai enlevé
le point-virgule a la fin mais toujours en erreur. J'ai tenté de
remplacer [formulaires] par [forms] sans succès également.

Il est ou le bobo :-(

merci