Erreur Objet non valide sur requete SQL
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 requete.
si j’exécute la requête directement dans sqlmanagement aucun problème la requête retourne bien.
'------------------------
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| '--MsgBox (valcel)
Dim rsBat3 As ADODB.Recordset
Set rsBat3 = New ADODB.Recordset
strConn = "PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE=10.11.7.73;UID=sa;PWD=tenotua"
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 |
La requete SQL:
Code:
1 2 3 4 5 6 7 8 9 10 11
| 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 qu'elle est le problème ? Ou est-je commis une erreur ?
Merci d'avance pour votre aide
guigui69