Access.Application.CurrentDb什么都没有?

时间:2009-01-06 19:42:39

标签: ms-access vba

我无法解释这个:

我收到错误:

  

错误“91”(对象或未设置块)

在下面的第二行:

Dim rs As DAO.Recordset

Set rs = CurrentDb.OpenRecordset("SELECT * FROM employees")

以下内容也会导致:

`Set rs = CurrentDb.OpenRecordset("employees")`

在即时窗口中单独执行?CurrentDb.Name也会导致错误。

现在,显然数据库是打开的,因为我正在编辑其中的表单,那么什么可能导致此错误?

4 个答案:

答案 0 :(得分:7)

如果您正在使用ADP项目,则应使用CurrentProject而不是CurrentDB。

答案 1 :(得分:3)

您应该将.openRecordset方法分配给dao.recordset对象或通用对象('后期绑定'技术)。尝试这样的事情:

dim rs as dao.recordset
set rs = currentDb.openRecordset(your SELECT instruction,...)

答案 2 :(得分:1)

尝试创建数据库对象并使用它而不是CurrentDb引用。例如:

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM Employees")

答案 3 :(得分:0)

我怀疑代码不起作用的原因是根据M / Soft link text'CurrentDb'是一种返回“数据库”类型的对象变量的方法。所以Forester93显示的代码应该可行。这就是我现在使用和使用多年的东西。