MS Access VBA DoCmd.OpenForm WhereCondition失败,找不到字段错误

时间:2013-07-09 12:22:21

标签: vba ms-access

我正在使用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",表示匹配,但表单不会前进到该记录。

我可能缺少什么想法?

2 个答案:

答案 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列,因为它尚未创建。