Bonjour à tous,

Je realise un fichier de reporting, qui intérroge une base SQL (sql server 2008) et j'ai une erreur avec la requete suivante:

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
WITH requete1 AS (SELECT G.razon AS Societe, T.descrip AS Atelier, R.Descrip AS tarif, TPF.Tecnicidad AS M, TPF.FechaDesde AS date_debut, TPF.PrecioHora AS prix
				FROM   ttTarifaPrecioFecha AS TPF
				INNER JOIN tgempresa AS G ON TPF.emp = G.emp 
				INNER JOIN tgtaller AS T  ON TPF.emp = T.emp AND TPF.taller = T.taller  
				INNER JOIN ttTarifa AS R  ON R.Codigo=TPF.Codigo  
				WHERE  TPF.Tecnicidad = 'M2' AND  TPF.Codigo IN ('TCE','TCL','TGA')),
requete2 AS (SELECT Societe ,Atelier, tarif, date_debut, Prix, RANK() OVER(PARTITION BY Societe ,Atelier,tarif ORDER BY date_debut DESC) AS RANG 	FROM   requete1)
SELECT Societe ,Atelier, tarif, date_debut ,prix, RANG FROM   requete2 WHERE  RANG = 1;

Mais se qui est bizarre si je lance cette requête sur mon serveur SQL, la requête affiche bien le résultat le résultat sans aucun probleme.

voici le segement du code concernée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'--------------------------------------------------------------
    Set f7 = fso.OpenTextFile(chemin & "\sql\t2.sql", ForReading)
    une_variable7 = f7.ReadAll
    f7.Close
               Set f07 = fso.OpenTextFile(chemin & "\test.txt", 2, True)
 f07.write (une_variable7)
 f07.Close
 
    Dim rsBatiiiiii As ADODB.Recordset
    Set rsBatiiiiii = New ADODB.Recordset
    With rsBatiiiiii
    .ActiveConnection = cnBat
    .Open une_variable7
             DerniereLigne7 = Worksheets("Tarif M2").Range("A100000").End(xlUp).Row + 1
    Worksheets("Tarif M2").Range("A" & DerniereLigne7).CopyFromRecordset rsBatiiiiii
   .Close
 
    End With
L'erreur est sur .Open une_variable7 avec comme message "syntaxe incorrecte vers le mot clé 'with'"

J'ai testé ce bout de code en changeant seulement la requête en question. Au lieu de pointe sur ma requete ci-dessus, j'ai fait pointé sur autre requete(stockvo.sql). Le script VBA c'est bien executé sans erreur.


Quel est le probléme avec le WITH ?

Merci d'avance pour votre aide

guigui69