Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 VBA requete SQL

azertyyyy

XLDnaute Nouveau
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.

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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…