【发布时间】: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