我的访问权限中包含以下VBA代码。
Dim subform As Object
Dim formFilter As String
formFilter = "..." 'a SQL statement
Set subform = Me!my_subform.Form
subform.RecordSource = formFilter
subform.field1.ControlSource = "f1"
subform.field2.ControlSource = "f2"
subform.field3.ControlSource = "f3"
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT TOP 1 f4 FROM my_table " _
& "WHERE tableF1= '" & [f1] & "' AND tableF2 = '" & [f2] & "' " _
& "ORDER BY tableF5 DESC")
subform.field4.ControlSource = rs(0)
我首先将子表单中的前3个字段绑定到记录源的字段中。然后我需要将第4个字段绑定到不同的记录集。此记录集必须引用子表单的前两个字段。
但是,我得到了运行时错误2465.访问无法引用我的OpenRecordSet语句的[f1]和[f2]字段。
我该如何解决这个问题?
我在数据表视图中使用此表单。所以我需要引用的不是field1和field2的单个值,而是必须链接整个记录列。
非常感谢。
答案 0 :(得分:0)
(从早期编辑到问题,自回滚以来:)
显然,本案例中的解决方案是在 子表单 的On Load
事件处理程序中使用以下代码,而不是 主要表格
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT TOP 1 f4 FROM my_table " _
& "WHERE tableF1= '" & [f1] & "' AND tableF2 = '" & [f2] & "' " _
& "ORDER BY tableF5 DESC")
subform.field4.ControlSource = rs(0)
因为[f1]和[f2]控件位于子窗体上,因此无法从主窗体的类模块代码中看到。