Hibás Syntax Error "JOIN" a VBA

szavazat
0

Próbálok tanulni VBA Script kifejezetten csatlakozik az SQL és húzza néhány számla adatait. Azonban kapok egy szintaktikai hiba „Hibás szintaxis mellett a kulcsszó»Csatlakozás«. Tudna nekem segíteni megtalálni a szintaktikai hiba.

        strQuery =  _
                        & DECLARE @Perns TABLE(Id INT) _
                        &  INSERT IGNORE  INTO @Perns (Id) _
                        &  SELECT 4098  _
                        &  SELECT ddm.FirstName, ddm.LastName, am.alias AS Alias, ddm.PersonnelNbr AS N'Pern#', nam.parent_OU_DN, gc.PersonGroupDesc AS N'AccManNG Status'  _
                        &  FROM @Perns AS p _
                        & LEFT OUTER JOIN [Accmanng].[dbo].[directory_data_master] ddm ON p.Id=ddm.PersonnelNbr _
                        & LEFT OUTER JOIN [Accmanng].[dbo].[alias_master] am ON am.alias_id = ddm.alias_id _
                        & LEFT OUTER JOIN [Accmanng].[dbo].[network_account_master] nam ON AM.alias_id = nam.alias_id _
                        & LEFT OUTER JOIN [Accmanng].[dbo].[dim_groupcode] gc ON ddm.PersonGroupCode=gc.PersonGroupCode  _
                        & WHERE ddm.PersonnelNbr in ( SELECT Id FROM @perns)


    rst.Open strQuery, ConnectString


    Sheets(1).Range(A2).CopyFromRecordset rst
A kérdést 26/05/2017 18:18
a forrás felhasználó
Más nyelveken...                            


2 válasz

szavazat
3

Hiányzik a tér előtt a JOIN záradékot

      strQuery = "" _
                    & "DECLARE @Perns TABLE(Id INT)" _
                    & " INSERT IGNORE  INTO @Perns (Id)" _
                    & " SELECT 4098 " _
                    & " SELECT ddm.FirstName, ddm.LastName, am.alias AS Alias, ddm.PersonnelNbr AS N'Pern#', nam.parent_OU_DN, gc.PersonGroupDesc AS N'AccManNG Status' " _
                    & " FROM @Perns AS p" _
                    & " LEFT OUTER JOIN [Accmanng].[dbo].[directory_data_master] ddm ON p.Id=ddm.PersonnelNbr" _
                    & " LEFT OUTER JOIN [Accmanng].[dbo].[alias_master] am ON am.alias_id = ddm.alias_id" _
                    & " LEFT OUTER JOIN [Accmanng].[dbo].[network_account_master] nam ON AM.alias_id = nam.alias_id" _
                    & " LEFT OUTER JOIN [Accmanng].[dbo].[dim_groupcode] gc ON ddm.PersonGroupCode=gc.PersonGroupCode " _
                    & " WHERE ddm.PersonnelNbr in ( SELECT Id FROM @perns)"

EDIT: Is Gordon fogott néhány kérdés. Biztos vagyok benne, hogy hibát kap, mert a tér közelében, csatlakozhat.

Válaszolt 26/05/2017 18:23
a forrás felhasználó

szavazat
1

Nyomtassa ki a kódot. Mintegy 19 esetből 20, ami a hiba nyilvánvaló.

Az első néhány sorát a kódot a következők:

DECLARE @Perns TABLE(Id INT)
INSERT IGNORE  INTO @Perns (Id)
 SELECT 4098 
 SELECT ddm.FirstName, ddm.LastName, am.alias AS Alias, ddm.PersonnelNbr AS N'Pern#', nam.parent_OU_DN, gc.PersonGroupDesc AS N'AccManNG Status' 

. . .

Ez nem érvényes SQL:

SELECT 4098 SELECT ddm.FirstName
Válaszolt 26/05/2017 18:23
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more