【问题标题】:error 2465 can't find field '|1' referred to in your expression错误 2465 找不到表达式中引用的字段“|1”
【发布时间】:2020-07-13 19:35:24
【问题描述】:

我创建了一个我想要的查询。然后,我查看了 Access 中的 SQL View 窗口,以将其复制/粘贴到 VBA 中。我唯一更改的是“WHERE”部分以包含一个自动编号 ID(此处引用为 num_PM,它是表单中的一个文本框)我已经查看了一段时间,但我看不出我做错了什么。我现在得到一个

错误 2465 找不到表达式中引用的字段“|1”。

Set rst_UnitEntryCounts = CurrentDb.OpenRecordset("SELECT tbl_UnitTypes.UnitTypes_WeeklyTextBoxUserEntryForm, " _
                                                    & "        tbl_UnitTypes.UnitTypes_CumalativeTextBoxUserEntryForm, " _
                                                    & "        tbl_PMEntry.PMEntry_Week_Ending, " _
                                                    & "        Sum(tbl_UnitEntry.UnitEntry_Unit_Count) AS SumOfUnitEntry_Unit_Count " _
                                                    & "FROM (tbl_UnitTypes " _
                                                    & "         INNER JOIN tbl_UnitEntry ON tbl_UnitTypes.UnitTypes_ID = tbl_UnitEntry.UnitEntry_UnitTypes_ID) " _
                                                    & "         INNER JOIN (tbl_PMHeader INNER JOIN tbl_PMEntry ON tbl_PMHeader.PMHeader_ID = tbl_PMEntry.PMEntry_PMHeader_ID) ON tbl_UnitEntry.UnitEntry_PMEntry_ID = tbl_PMEntry.PMEntry_PMHeader_ID " _
                                                    & "WHERE ((tbl_PMHeader.PMHeader_ID) = " & num_PM & " )" _
                                                    & "GROUP BY tbl_UnitTypes.UnitTypes_WeeklyTextBoxUserEntryForm, " _
                                                    & "          tbl_UnitTypes.UnitTypes_CumalativeTextBoxUserEntryForm, " _
                                                    & "          tbl_PMEntry.PMEntry_Week_Ending")

【问题讨论】:

  • 尝试调试。打印sql语句检查num_PM的值
  • 我是 access/vba 的新手。我只是在 VBA 窗口中输入这个吗?还是直接窗口?
  • 它应该在 vba 上。因为您需要 num_PM 上的参考,例如Debug.Print "SELECT.... ".
  • 谢谢,我确实打印出了我所期望的(自动编号 ID):请参阅下面的部分代码:WHERE ((tbl_PMHeader.PMHeader_ID) = 802 ) GROUP BY tbl_UnitTypes.UnitTypes_WeeklyTextBoxUserEntryForm, tbl_UnitTypes.UnitTypes_CumalativeTextBoxUserEntryForm, tbl_PMEntry.PMEntry_Week_Ending ...

标签: ms-access vba runtime-error ms-access-2010


【解决方案1】:

您的语句只是缺少一个必需的空格字符。

问题来了:

& "WHERE ((tbl_PMHeader.PMHeader_ID) = " & num_PM & " )" _
& "GROUP BY tbl_UnitTypes.UnitTypes_WeeklyTextBoxUserEntryForm, " _

)GROUP 没有引用任何东西...解决方案:

& "WHERE ((tbl_PMHeader.PMHeader_ID) = " & num_PM & ") " _
& "GROUP BY tbl_UnitTypes.UnitTypes_WeeklyTextBoxUserEntryForm, " _

这是假设您没有犯任何字段名称拼写错误。我注意到您有一个名为 UnitTypes_CumalativeTextBoxUserEntryForm 的字段,其中正确的拼写是 cumulative,但只要您一直保持一致,这应该不是问题。

【讨论】:

  • 没问题!如果有效,请将答案标记为正确
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
相关资源
最近更新 更多