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:
L'erreur est sur .Open une_variable7 avec comme message "syntaxe incorrecte vers le mot clé 'with'"
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
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
Partager