Bonjour à tous,
depuis mon fichier Excel en VBA j'interroge ma base sql (sqlserver2008r2).
il me retourne l'erreur suivante Nom d'objet 'F_COMPTEG' non valide, Cela correspond au nom d'une table dans ma requête.
si j’exécute la requête directement dans sqlmanagement aucun problème la requête retourne bien.
Je comprend pas pourquoi INNER JOIN [F_COMPTEG] ......... lui pose un probleme. si je remplace par la requête des toutes prêtes et sur une seul ligne, j'ai la même erreur 🙁
Merci d'avance pour votre aide et vos explications
azertyyy
depuis mon fichier Excel en VBA j'interroge ma base sql (sqlserver2008r2).
il me retourne l'erreur suivante Nom d'objet 'F_COMPTEG' non valide, Cela correspond au nom d'une table dans ma requête.
si j’exécute la requête directement dans sqlmanagement aucun problème la requête retourne bien.
VB:
'--MsgBox (valcel)
Dim rsBat3 As ADODB.Recordset
Set rsBat3 = New ADODB.Recordset
strConn = "PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE=*;UID=*;PWD=*"
DerniereLigne3 = Worksheets("CFG").Range("V1000").End(xlUp).Row
For i = 2 To DerniereLigne3
'-MsgBox i
Set f3 = fso_OpenTextFile(chemin & "\SQL\sql-sage-tresorie.sql", ForReading)
une_variable3 = Replace(f3.ReadAll, "nom_compta_sql", Worksheets("CFG").Range("w" & i).Value)
une_variable3 = Replace(une_variable3, "libelle_treso", Worksheets("CFG").Range("x" & i).Value)
une_variable3 = Replace(une_variable3, "datedebut", Format(valceldebut, "yyyymmdd"))
une_variable3 = Replace(une_variable3, "datefin", Format(valcel, "yyyymmdd"))
une_variable3 = Replace(une_variable3, "date_treso", valcel)
une_variable3 = Replace(une_variable3, "societe_treso", Worksheets("CFG").Range("v" & i).Value)
une_variable3 = Replace(une_variable3, "num_code_client", Worksheets("CFG").Range("y" & i).Value)
f3.Close
Set f23 = fso_OpenTextFile(chemin & "\" & Worksheets("CFG").Range("w" & i).Value & "-" & Worksheets("CFG").Range("x" & i).Value & ".txt", 2, True)
f23.write (une_variable3)
f23.Close
With rsBat3
.ActiveConnection = cnBat
.Open une_variable3
Do While Not rsBat3.EOF
DerniereLigne = Worksheets("SQL-tresorerie").Range("A10000").End(xlUp).Row + 1
'MsgBox (DerniereLigne)
Worksheets("SQL-tresorerie").Range("A" & DerniereLigne).CopyFromRecordset rsBat3
Loop
.Close
End With
Next
Code:
SELECT 'societe_treso' as soc,'libelle_treso' as lib,'date_treso' as datef,
[F_ECRITUREC].CG_NUM,
[F_COMPTEG].CG_Intitule as CG_Intitule,
CAST (SUM(CASE EC_Sens
WHEN 1 THEN EC_Montant*-1
ELSE EC_Montant END) AS decimal (10,2)) as montant
FROM [nom_compta_sql].[dbo].[F_ECRITUREC]
INNER JOIN [F_COMPTEG] on [F_COMPTEG].CG_NUM=[F_ECRITUREC].CG_NUM
WHERE JM_Date>= 'datedebut' and JM_Date<= 'datefin'
and [F_ECRITUREC].CG_NUM like 'num_code_client'
GROUP BY [F_ECRITUREC].CG_NUM,[F_COMPTEG].CG_Intitule
Je comprend pas pourquoi INNER JOIN [F_COMPTEG] ......... lui pose un probleme. si je remplace par la requête des toutes prêtes et sur une seul ligne, j'ai la même erreur 🙁
Merci d'avance pour votre aide et vos explications
azertyyy