OVH Cloud OVH Cloud

doCmd.RunSQL

1 réponse
Avatar
jacob
Bonjour et merci à qui pourra m'aider.
---
je désire exécuter une requête (qui marche par ailleurs) au sein d'une sub.
J'ai donc copié le contenu du mode SQL de la requête :
---
SELECT POSTE.DESIGNATION, Sum(OF_PHASE.temps_reglage) AS
SommeDetemps_reglage, Sum((OF_PHASE!temps_usinage*OF_PIECE!qte_lance_of_pie))
AS Usinage,
FormatNumber(Sum(OF_PHASE!temps_reglage+OF_PHASE!temps_usinage*OF_PIECE!qte_lance_of_pie),0)
AS TpsMachine, A_Gps(OF_PHASE!debut_planif_op) AS Année,
S_Gps(OF_PHASE!debut_planif_op) AS Semaine
FROM POSTE INNER JOIN (OF_PHASE INNER JOIN OF_PIECE ON (OF_PHASE.of_op =
OF_PIECE.of) AND (OF_PHASE.Num_Affaire = OF_PIECE.affaire)) ON POSTE.CODE =
OF_PHASE.code_ressource_op
WHERE (((OF_PHASE.etat_op)<>6) AND
((DtGpsWin([OF_PHASE]![debut_planif_op]))>=Date())) OR
(((OF_PHASE.etat_op)<>6) AND
((DtGpsWin([OF_PHASE]![debut_planif_op]))>=Date()))
GROUP BY POSTE.DESIGNATION, A_Gps(OF_PHASE!debut_planif_op),
S_Gps(OF_PHASE!debut_planif_op), OF_PHASE.code_ressource_op
HAVING (((Sum(OF_PHASE.temps_reglage))>0 And
(Sum(OF_PHASE.temps_reglage))<100) AND ((OF_PHASE.code_ressource_op)<>0)) OR
(((OF_PHASE.code_ressource_op)<>0) AND
((Sum(([OF_PHASE]![temps_usinage]*[OF_PIECE]![qte_lance_of_pie])))>0 And
(Sum(([OF_PHASE]![temps_usinage]*[OF_PIECE]![qte_lance_of_pie])))<100))
ORDER BY OF_PHASE.code_ressource_op, A_Gps(OF_PHASE!debut_planif_op),
S_Gps(OF_PHASE!debut_planif_op);
---
dans le module avec au début et après déclaration :
dim strSql as string
strSQL = "le texte du SQL..."
et avec des renvois à la ligne :
" & _
Mais ca ne marche pas !!!
J'ai soit un message d'erreur <Instruction SQL non valide...>
soit <Une instruction ExécuterSQL nécessite un argument consistant en une
instruction SQL>
Par ailleurs, l'espionnage de ma variable <strSQL> semble tronquer cette
expression aux alentour de 253 caractères, alors que len(strSQL) donne 1257
caractères...
---
Y at'il des limites de longueur à respecter ? je ne trouve dans la doc que
la limite de 32.768 caractères dans RunSQL...
Merci d'avance

1 réponse

Avatar
Mona
Je ne sais pas si ca peut changer quelque chose, mais moi je ne met pas de
";" à la fin de ma requête quand je la fait en VB


"jacob" a écrit dans le message de
news:
Bonjour et merci à qui pourra m'aider.
---
je désire exécuter une requête (qui marche par ailleurs) au sein d'une
sub.

J'ai donc copié le contenu du mode SQL de la requête :
---
SELECT POSTE.DESIGNATION, Sum(OF_PHASE.temps_reglage) AS
SommeDetemps_reglage,
Sum((OF_PHASE!temps_usinage*OF_PIECE!qte_lance_of_pie))

AS Usinage,

FormatNumber(Sum(OF_PHASE!temps_reglage+OF_PHASE!temps_usinage*OF_PIECE!qte_

lance_of_pie),0)
AS TpsMachine, A_Gps(OF_PHASE!debut_planif_op) AS Année,
S_Gps(OF_PHASE!debut_planif_op) AS Semaine
FROM POSTE INNER JOIN (OF_PHASE INNER JOIN OF_PIECE ON (OF_PHASE.of_op > OF_PIECE.of) AND (OF_PHASE.Num_Affaire = OF_PIECE.affaire)) ON POSTE.CODE
OF_PHASE.code_ressource_op
WHERE (((OF_PHASE.etat_op)<>6) AND
((DtGpsWin([OF_PHASE]![debut_planif_op]))>Úte())) OR
(((OF_PHASE.etat_op)<>6) AND
((DtGpsWin([OF_PHASE]![debut_planif_op]))>Úte()))
GROUP BY POSTE.DESIGNATION, A_Gps(OF_PHASE!debut_planif_op),
S_Gps(OF_PHASE!debut_planif_op), OF_PHASE.code_ressource_op
HAVING (((Sum(OF_PHASE.temps_reglage))>0 And
(Sum(OF_PHASE.temps_reglage))<100) AND ((OF_PHASE.code_ressource_op)<>0))
OR

(((OF_PHASE.code_ressource_op)<>0) AND
((Sum(([OF_PHASE]![temps_usinage]*[OF_PIECE]![qte_lance_of_pie])))>0 And
(Sum(([OF_PHASE]![temps_usinage]*[OF_PIECE]![qte_lance_of_pie])))<100))
ORDER BY OF_PHASE.code_ressource_op, A_Gps(OF_PHASE!debut_planif_op),
S_Gps(OF_PHASE!debut_planif_op);
---
dans le module avec au début et après déclaration :
dim strSql as string
strSQL = "le texte du SQL..."
et avec des renvois à la ligne :
" & _
Mais ca ne marche pas !!!
J'ai soit un message d'erreur <Instruction SQL non valide...>
soit <Une instruction ExécuterSQL nécessite un argument consistant en une
instruction SQL>
Par ailleurs, l'espionnage de ma variable <strSQL> semble tronquer cette
expression aux alentour de 253 caractères, alors que len(strSQL) donne
1257

caractères...
---
Y at'il des limites de longueur à respecter ? je ne trouve dans la doc que
la limite de 32.768 caractères dans RunSQL...
Merci d'avance