带有 SQL 查询的 Access 中的运行时错误 3067

Posted

技术标签:

【中文标题】带有 SQL 查询的 Access 中的运行时错误 3067【英文标题】:run time error 3067 in Access with SQL query 【发布时间】:2014-01-18 16:00:21 【问题描述】:

现在一切正常!谢谢大家的帮助

过去两个小时我一直在查看同一行代码,但不明白为什么我继续收到相同的运行时错误 3067 消息(查询的输入必须至少包含一个表/查询)。这个查询假设需要三个表,通过关系和过去的 4 列链接到第 4 个表。下面的代码是我直接从 Access 内置的查询中复制的,该查询有效..

 DoCmd.SetWarnings False
 st_sql = "INSERT INTO tblContactsProjectTrk01 ([Participant], [Sub_Project], [Role_type], [Completion_Percentage])" & _
 "SELECT [tblProjManagementPhaseParticipants].[Participant], [tblProjectMasterList].[Sub project], [tblProjManagementPhaseParticipants].[Role_type], Avg([tblMasterListOfEvents].[Completion percentage]) AS MediaDiCompletion percentage" & _
 "FROM[tblMasterListOfEvents] INNER JOIN ([tblProjManagementPhaseParticipants] INNER JOIN [tblProjectMasterList] ON [tblProjManagementPhaseParticipants].[ID_Project] = [tblProjectMasterList].[ID Project]) ON ([tblProjectMasterList].[ID Project] = [tblMasterListOfEvents].[ID Project]) AND ([tblMasterListOfEvents].[ID Event] = [tblProjManagementPhaseParticipants].[ID_Event])" & _
 "GROUP BY([tblProjManagementPhaseParticipants].[Participant], [tblProjectMasterList].[Sub project], [tblProjManagementPhaseParticipants].[Role_type])" & _
 "ORDER BY[tblProjManagementPhaseParticipants].[Participant]"

Application.DoCmd.RunSQL (st_sql)

【问题讨论】:

【参考方案1】:

FROM前面没有空格,所以实际上是percentFROM。我觉得应该是

...Avg([tblMasterListOfEvents].[Completion percentage]) AS [MediaDiCompletion percentage] " & _
"FROM[tblMasterListOfEvents]...

【讨论】:

太棒了!谢谢...但是现在新消息是运行时错误 3075...缺少操作员...?? 我建议返回 Access 并使用可视化设计器再次创建您的查询,然后切换到 SQL 视图并将其复制到您的 VBA 代码中。您只需要确保包含所有空格 Crazy Horse,我重新做了所有事情并复制并粘贴了 Access 查询中的 SQL 代码,但我仍然收到 3075 消息,告诉我我缺少一个操作员【参考方案2】:

您的 GROUP BY 和 ORDER BY 语句之前的换行也有同样的问题。您需要在前一行和这两个语句之间有空格。

【讨论】:

以上是关于带有 SQL 查询的 Access 中的运行时错误 3067的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Access/SQL 错误参数框

使用带有 Azure 链接表的 Access 插入 SQL 失败

从 Access VBA 发送 SQL 查询时停止运行

在 Access 2013 中使用 SQL 更新查询

使用 ODBC + Access 时转义 SQL 查询中的输入数据

vb.Net & Access 是/否 sql 执行错误