【问题标题】:Where is the CurrentDb set in Access 2003?Access 2003 中的 CurrentDb 设置在哪里?
【发布时间】:2014-10-15 15:44:17
【问题描述】:

我知道 CurrentDb 返回对当前打开的数据库的引用,但它首先设置在哪里?我正在使用将表链接到多个数据库的 Access 前端,那么 CurrentDb 何时/在哪里设置?

【问题讨论】:

  • 什么意思,设置在哪里?打开数据库时就设置好了.....

标签: ms-access vba ms-access-2003


【解决方案1】:

CurrentDb 在 Access 会话中打开数据库时设置。

如果您在不打开数据库的情况下启动 Access,或者关闭当前会话中打开的任何数据库,CurrentDbNothing ...

? CurrentDb Is Nothing
True

但是当数据库打开时,CurrentDb 不再是Nothing

? CurrentDb Is Nothing
False

CurrentDb 现在是一个 DAO 数据库对象 ...

? TypeName(CurrentDb)
Database
? CurrentDb.Name
C:\share\Access\database1.mdb

【讨论】:

  • 但请记住“CurrentDb 方法创建当前数据库的另一个实例,而 DBEngine(0)(0) 语法指的是当前数据库的打开副本。CurrentDb 方法使您能够创建引用当前数据库的多个数据库类型变量"
  • 还要记住CurrentDb不是一个对象,它是一个返回一个对象函数,所以使用CurrentDb.SomeMethod 有时会导致unexpected behaviour later in the code。有关更多血腥细节,请参阅另一个答案here
  • 您能否详细说明“在 Access 会话中打开数据库时设置了 CurrentDb。”?我想我很困惑,因为我有一个 Access 前端,其中有很多链接到不同 MySQL 数据库的表。那么谁能说当前的 MySQL 数据库实际上是什么?当前数据库只是引用所有链接表的集合的一种方式吗?
  • 当您在 Access 会话中打开 Access 数据库文件时,CurrentDb 返回对该数据库的引用。如果该 db 文件包含指向另一个 db 中的表或视图的链接,CurrentDb 仍会返回对同一 Access db 的引用。当该数据库仍然打开时,它不会改变。您可以在数据表视图中打开其中一个链接表,CurrentDb 仍然返回对同一数据库的引用 --- 它不会切换到指向包含链接指向的表的外部数据库。您可以在“即时”窗口中轻松验证:Debug.Print CurrentDb.Name
  • 然后创建一个链接,检查CurrentDb.Name。打开链接,查看和编辑链接的数据并再次检查CurrentDb.Name。删除链接,CurrentDb.Name 仍然显示相同的数据库。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-02
  • 2020-03-07
  • 2016-12-25
  • 1970-01-01
  • 2019-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多