OVH Cloud OVH Cloud

probleme requete sql

1 réponse
Avatar
Angela
bonjour à tous,
je suis toujours sur mon problème de formulaire de demande de réparation;
J'ai donc des formulaires que les utilisateurs saisissent et qui sont
traités par le service maintenance.
Je voudrai que chaque service demandeur n'ait accès qu'au demandes de son
service (sachant qu'1 service peut avoir plusieurs machines):
J'écris donc la requête suivante :
SELECT [DEMANDE REPARATION].N°DemandeReparation, [DEMANDE
REPARATION].DateDemandeReparation, [DEMANDE REPARATION].HeureAppel, [DEMANDE
REPARATION].NomDemandeur, [DEMANDE REPARATION].NatureIntervention,
machine.N°Service
FROM SERVICE INNER JOIN (machine INNER JOIN [DEMANDE REPARATION] ON
machine.[nom machine] = [DEMANDE REPARATION].[non machine]) ON
SERVICE.N°Service = machine.N°Service
WHERE ((([DEMANDE REPARATION].[non machine])=fComputerName())) or
(((SERVICE.N°Service)=([machine].[N°Service])) AND (([DEMANDE
REPARATION].[non machine])=([machine].[nom machine])))
group BY [DEMANDE REPARATION].N°DemandeReparation, [DEMANDE
REPARATION].DateDemandeReparation, [DEMANDE REPARATION].HeureAppel, [DEMANDE
REPARATION].NomDemandeur, [DEMANDE REPARATION].NatureIntervention,
machine.N°Service;
J'obtiens la liste complète des demandes et je ne comprends pas pourquoi.
Pouvez vous m'aider???
merci d'avance.
Angela

1 réponse

Avatar
Raymond [mvp]
Bonsoir.

une idée seulement:
A mon avis ça peut venir de la clause where ( jusque là c'est parfait hein
?) entre le Or et le And . les 3 conditions sont séparés et peuvent être
interprétées de façon différente:
(1 ou 2) et 3
1 or (2 et 3)
il faudra encadrer les 3 conditions dans la hiérarchie.

WHERE ((([DEMANDE REPARATION].[non machine])üomputerName())) or
(((SERVICE.N°Service)=([machine].[N°Service])) AND (([DEMANDE
REPARATION].[non machine])=([machine].[nom machine])))

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Angela" a écrit dans le message de
news:
bonjour à tous,
je suis toujours sur mon problème de formulaire de demande de réparation;
J'ai donc des formulaires que les utilisateurs saisissent et qui sont
traités par le service maintenance.
Je voudrai que chaque service demandeur n'ait accès qu'au demandes de son
service (sachant qu'1 service peut avoir plusieurs machines):
J'écris donc la requête suivante :
SELECT [DEMANDE REPARATION].N°DemandeReparation, [DEMANDE
REPARATION].DateDemandeReparation, [DEMANDE REPARATION].HeureAppel,
[DEMANDE

REPARATION].NomDemandeur, [DEMANDE REPARATION].NatureIntervention,
machine.N°Service
FROM SERVICE INNER JOIN (machine INNER JOIN [DEMANDE REPARATION] ON
machine.[nom machine] = [DEMANDE REPARATION].[non machine]) ON
SERVICE.N°Service = machine.N°Service
WHERE ((([DEMANDE REPARATION].[non machine])üomputerName())) or
(((SERVICE.N°Service)=([machine].[N°Service])) AND (([DEMANDE
REPARATION].[non machine])=([machine].[nom machine])))
group BY [DEMANDE REPARATION].N°DemandeReparation, [DEMANDE
REPARATION].DateDemandeReparation, [DEMANDE REPARATION].HeureAppel,
[DEMANDE

REPARATION].NomDemandeur, [DEMANDE REPARATION].NatureIntervention,
machine.N°Service;
J'obtiens la liste complète des demandes et je ne comprends pas pourquoi.
Pouvez vous m'aider???
merci d'avance.
Angela