在 Access VBA 中,查询的属性包括 CacheSize、Prepare 和 StillExecuting。我已经查看了四个不同 Access 数据库的所有存储查询的这些属性,并且请求始终产生错误 3251"此类对象不支持操作"。这发生在所有查询的循环中,如果我在即时窗口中发出请求,也会发生这种情况,例如:
debug.Print CurrentDb.QueryDefs(0).CacheSize
上面链接的查询属性文档指出它适用于 Access 2013。我使用的是 Access 2007,但在 VBA 编辑器中,键入 CurrentDb.QueryDefs(0).
时出现的属性弹出列表包括 CacheSize、Prepare 和 StillExecuting,因此问题不在于我的 Access 版本不支持这些属性。
为什么我无法获取存储查询的这些属性的值?
这些属性仅受 ODBCDirect 工作区支持,这些工作区仅在 JET 中受支持,在 ACE 中不受支持,并且仅适用于外部连接。
这些属性存在并已记录在案,但这并不意味着您可以在查询 Access 本身时使用它们,也不意味着您应该使用它们。如果要异步执行查询,则应使用 ADO,而不是 DAO。