VBA中的语法错误“JOIN”不正确

我正试图学习VBA脚本专门连接到SQL和拉几个帐户的细节。 然而,我得到一个语法错误“关键字”join“附近的语法错误,你能帮我find语法错​​误。

strQuery = "" _ & "DECLARE @Perns TABLE(Id INT)" _ & " INSERT 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 

打印出你的代码。 20个中大约有19个使错误变得明显。

你的代码的前几行是:

 DECLARE @Perns TABLE(Id INT) INSERT 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' . . . 

这是无效的SQL:

 SELECT 4098 SELECT ddm.FirstName 

您在JOIN子句之前缺less空格

  strQuery = "" _ & "DECLARE @Perns TABLE(Id INT)" _ & " INSERT 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)" 

编辑:戈登还抓到了一些问题。 我很确定你得到的错误是因为接近连接的空间。