我正在使用VBA打开表单。如果重要,表单会对记录源进行交叉表查询。 我正在尝试
DoCmd.OpenForm Form_frmMyForm.Name, , , "ID = 7"
(最终我将替换" = 7"更有用的东西。这只是用于测试)
但是当我到达那条线时我得到一个错误:
Run-time error '3070":
The Microsoft Access database engine does not recognize 'ID' as a valid field name or expression.
我已经肯定地确认了该字段的ID'在我的交叉表查询中。事实上,我在几个控件中使用该字段没有问题。
我也试过
Form_frmMyForm.Recordset.FindFirst "ID = 7"
MsgBox (Form_frmMyForm.Recordset.NoMatch)
并显示" False",表示匹配,但表单不会前进到该记录。
我可能缺少什么想法?
答案 0 :(得分:0)
尝试更改:
Form_frmMyForm.Recordset.FindFirst "ID = 7"
到
Form_frmMyForm.Recordset.FindFirst "[ID] = 7"
引用记录集中的字段时,您需要这些方括号。然后使用你可以做的变量:
Form_frmMyForm.Recordset.FindFirst ("[ID] = " & Me.Whatever & "")
更新:
DoCmd.OpenForm Form_frmMyForm.Name, , , Form_frmMyForm.Recordset.FindFirst "[ID] = 7"
答案 1 :(得分:0)
基础数据中的ID或交叉表生成的列是?
我想知道在生成交叉表列之前是否应用了条件,因此当它开始获取数据(并尝试应用条件)时,它无法看到ID列,因为它尚未创建。