Requête SQl

ninou58

XLDnaute Occasionnel
Re Bonjour,
euh bon je suis surement pas dans le bon forum pour cette demande d'aide mais j'essaye.
Voilà j'ai une requête à faire que j'ai commencé bien sur. Quand je l'execute sous SQL cela fonctionne comme je le veux mais quand je la transpose pour Excel non, ca marche plus, du moins ça donne pa sle smêmes résultats.
Ici la requête SQL :
SELECT DETAILS.CodeMachine,DETAILS.Numjour,PERSONNEL.nom, PERSONNEL.prenom
FROM PERSONNEL INNER JOIN
DETAILS ON PERSONNEL.Matricule = DETAILS.Matricule INNER JOIN
MACHINES ON DETAILS.CodeMachine = MACHINES.CodeMAchine
WHERE (DETAILS.[Exception] IS NULL) AND (DETAILS.Numjour = 2) AND (DETAILS.Libelleposte = 'soir') OR
(DETAILS.Numjour = 2) AND (DETAILS.Libelleposte = 'nuit') OR
(DETAILS.Numjour = 3) AND (DETAILS.Libelleposte = 'matin')

La ca me donne bien les personnes du jour 2 soir et nuit et du jour 3 le matin.

Requête sous Excel:
v_strsql = 'SELECT details.CodeMachine, Numjour,nom,prenom FROM DETAILS, MACHINES,'
v_strsql = v_strsql & 'PERSONNEL WHERE DETAILS.CodeMAchine =MACHINES.CodeMAchine And DETAILS.Matricule = PERSONNEL.Matricule '
v_strsql = v_strsql & ' (and exceptionD is null) and (numsemaine = ' & recupsem & ')
and ((numjour=' & recupjour & ')and (libelleposte='soir')) OR ((DETAILS.Numjour = ' & recupjour & ') AND (DETAILS.Libelleposte = 'nuit'))
OR ((DETAILS.Numjour = ' & recupjour1 & ') AND (DETAILS.Libelleposte = 'matin'))'

Par contre avec celle ci, j'ai un depassement,toutes les lignes sont remplies et se multiplient.

Merci d'avance pour votre aide
 

ninou58

XLDnaute Occasionnel
Bonjour MichelXld,
A y est affaire résolu, je te remercie de t'y être intéressé.
Enf aite je l'ai faite avec Acces j'ai fait un copier coller et hop, maintenant ça fonctionne. Je cherche pas trop le pourquoi du comment.
Je suis donc reparti dans la remise en forme des données.
Par contre, j'ai une petite question, peut être un nouveau fil?
Bon on sait jamais que tu repasses par ici.
Je dois faire une requête pour vérifier que le numéro de semaine existe dans la table.
J'ai commencé mais je sais pas comment faire,
je sai spas ce qu'il doit ramené.
''' Requête qui vérifie si le numéro de semaine existe dans la table DETAILS
'v_strsql1 = 'SELECT Numsemaine FROM DETAILS '
'v_strsql1 = v_strsql1 & ' WHERE codeunite=' & unite & ' and numsemaine=' & recup & ''
''
'Set rs1 = New ADODB.Recordset
'Set rs1 = Cnx.Execute(v_strsql1)
''
Merci encore
:silly:
 

michel_m

XLDnaute Accro
Bonjour ninnou, mon cher michel,

pour tester la présence, tu peux employer après
Set rs1 = Cnx.Execute(v_strsql1)
l'instruction suivante
if rs1.EOF then
msgbox 'numéro inexistant'
end if

(cette astuce m'a été communiquée par @+ thierry)

A+
Michel_M
 

Statistiques des forums

Discussions
312 765
Messages
2 091 892
Membres
105 084
dernier inscrit
lca.pertus