Salve,
Ho creato una query TSQL piuttosto complessa, ma che funziona perfettamente se la eseguo come SQL direct.
Copio il codice in VBA e non posso eseguirla. L'errore è il seguente : "3129 - Instruzione SQL invalida, ..."
Vorrei sapere se è possibile eseguire query TSQL da VBA.
Il mio codice è il seguente:
Dim qPT As QueryDef
Dim rsRead As Recordset
Set qPT = CurrentDb.CreateQueryDef("", gSql) <---- L'errore appare dopo questa istruzione
qPT.Connect = TempVars!conn
Set rsRead = qPT.OpenRecordset(dbOpenSnapshot)
la stringa gsql è la seguente (non la copio completamente visto che è molto lunga):
gSql = "with viewMain as (" _
& "SELECT FF.COD_FIELD_FORCE AS Code, CL.TXT_CONTEST_NAME AS Nom, FF.TXT_BANCH_NAME AS NomAgence," _
& " FF.DAT_CONTRACT AS DateCont, SI.COD_BRANCH AS AGC, SI.COD_DISTRICT AS DIS, SI.COD_TEAM AS EQ," _
& " ISNULL(SI.COD_US, '') AS US," _
& " CASE WHEN FF.STA_FIELD_FORCE = 'T' THEN 'E' WHEN FF.STA_FIELD_FORCE = 'A' THEN 'A' ELSE '' END AS STAT," _
& " CASE WHEN FF.TYP_CONTRACT = 'CARPC' THEN 'PC' ELSE 'REP' END AS Type_Cont," _
& " replace(FF.TXT_MSBR_NAME,'(SURINT)','') AS SURINT" _
& " FROM dbo.FIELD_FORCE FF INNER JOIN dbo.CLIENT CL ON FF.ID_CLIENT = CL.ID_CLIENT" _
& " INNER JOIN dbo.SITUATION SI ON FF.ID_FIELD_FORCE = SI.ID_FIELD_FORCE" _
& " WHERE (FF.TYP_BUSINESS_UNIT = 'C') AND (SI.DAT_END IS NULL)" _
& " AND (FF.COD_COMPANY = '000')" _
& ")," _
& "viewREOC as (" _
& "SELECT FF.COD_FIELD_FORCE ...
da quello che posso capire non viene accettato il fatto che la query cominci con "with viewMain" e non con SELECT, DELETE od altro.
Grazie per l'aiuto.