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