【发布时间】:2017-06-08 15:00:36
【问题描述】:
我正在使用 Access 中的几个表,CTOL 和 CTOL_Asbuilt。我正在尝试运行查询以使用 VBA 代码将这两个表连接在一起。我在 Access 中运行了查询,它可以工作。我正在为数据库库使用 DAO 从本地 Access 数据库中检索数据(代码与数据库位于同一数据库项目中),而且我是 VBA Access 脚本的新手。
SELECT CTOL.ID, CTOL.BOM_PART_NAME, CTOL.CII, CTOL.[PART FIND NO], CTOL.CSN,
CTOL.AFS, CTOL.EQP_POS_CD, CTOL.LCN, CTOL.POS_CT, CTOL.SERIAL_NO,
CTOL.PART_NO_LLP, [CTOL_Asbuilt].[PART-SN], [CTOL_Asbuilt].[PART-ATA-NO],
[CTOL_PW-E750207_Asbuilt].[PW-PART-NO]
FROM CTOL LEFT JOIN [CTOL_Asbuilt] ON CTOL.[PART FIND NO] = [CTOL_Asbuilt].[PART-ATA-NO];
这是下面的代码:
Option Compare Database
Option Explicit
'Const adOpenStatic = 3
'Const adLockOptimistic = 3
Function queryDatabase()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rsQuery As DAO.Recordset
Dim part_find_no() As String
Dim eqp_pos() As Integer
'Dim strSQL As String
Dim i As Integer
Dim j As Integer
'Set objConnection = CurrentDb.OpenRecordset("CTOL")
Set db = CurrentDb
Set rsQuery = db.OpenRecordset("SicrProcess", dbOpenDynaset)
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Function
当我使用调用该函数的宏运行此代码时,出现以下错误:
运行时错误“91”:
对象变量或未设置块变量
我正在尝试使用带有查询的代码来循环遍历两个字段并在 PART FIND NO 条目与最后一个条目匹配时增加 EQP_POS_CD 字段的值(否则,它只会移动到下一条记录,直到到达结果集的末尾)。我想测试运行此查询以确保代码检索通过在 Access 中手动运行查询输出的结果。
您能帮我解决这个错误,以便我可以运行我的代码来检索数据吗?谢谢!
【问题讨论】:
-
您关闭了
rs,但只打开了rsQuery。简单的错字。