Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 从不同的记录集中动态分配控制源_Ms Access_Vba_Recordset_Ms Access 2003 - Fatal编程技术网

Ms access 从不同的记录集中动态分配控制源

Ms access 从不同的记录集中动态分配控制源,ms-access,vba,recordset,ms-access-2003,Ms Access,Vba,Recordset,Ms Access 2003,我的access中有以下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" subfo

我的access中有以下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个字段绑定到记录源的字段。然后我需要将第四个字段绑定到另一个记录集。此记录集必须引用我的子窗体的前两个字段

但是,我得到了一个运行时错误2465。Access无法引用我的OpenRecordSet语句的[f1]和[f2]字段

我该如何解决这个问题

我在数据表视图中使用此表单。所以我需要引用的不是field1和field2的单个值,而是必须链接整个记录列

非常感谢。

(从前面的编辑到问题,从回滚到:)

显然,这种情况下的解决方案是在
加载时
事件处理程序中为子窗体使用以下代码,而不是主窗体

Dim db作为数据库
将遥感器作为记录集
Set db=CurrentDb
Set rs=db.OpenRecordset(“从my_表中选择前1个f4”_
&“其中tableF1=”&[f1]&“,tableF2=”&[f2]&“”_
&“按表5说明订购”)
subform.field4.ControlSource=rs(0)

因为[f1]和[f2]控件位于子窗体上,因此在主窗体的类模块代码中不可见。

不能将窗体绑定到两个不同的记录集。您应该能够将表单绑定到单个记录集,该记录集使用SQL语句中的表联接访问两个不同的表。但请注意,在SQL中使用联接的记录集通常是只读的。@HK1。谢谢但我不能使用JOIN,因为我的field4有超过1条匹配记录。使用JOIN将生成重复的字段1、字段2和字段3。这就是为什么在我的第二个记录集中,我只需要选择前1行,而不是在问题中添加解决方案,你应该将其作为答案发布。