CurrentDb 方法返回一个类型为 Database 的对象变量,该变量表示当前在 Microsoft Access 窗口中打开的数据库。
expression.CurrentDb
expression 必需。返回“应用于”列表中的一个对象的表达式。
注释 在 Microsoft Access 中, CurrentDb 方法可建立对 Microsoft Access 数据库 (.mdb) 中“Microsoft DAO 3.6 对象库”的隐含引用。
为了从 Visual Basic 中对数据库的结构及数据进行操作,必须使用数据访问对象 (DAO)。CurrentDb 方法提供了一种不必知道数据库的名称即可从 Visual Basic 代码中访问当前数据库的方法。有了指向当前数据库的变量之后,还可以访问并操作 DAO 分层结构中其他的对象和集合。
使用 CurrentDb 方法可以创建多个引用当前数据库的变量。在下面的示例中,变量 dbsA 和 dbsB 都引用当前数据库:
Dim dbsA As Database, dbsB As Database
Set dbsA = CurrentDb
Set dbsB = CurrentDb
注释 在 Microsoft Access 先前的版本中,可以使用语法 DBEngine.Workspaces(0).Databases(0) 或 DBEngine(0)(0) 来返回一个指向当前数据库的指针。而在 Microsoft Access 2000 中,则应使用替代的 CurrentDb 方法。CurrentDb 方法创建当前数据库的另一个实例,而 DBEngine(0)(0) 语法仅引用当前数据库打开的副本。使用 CurrentDb 方法可以创建引用当前数据库的多个 Database 类型变量。Microsoft Access 仍然支持 DBEngine(0)(0) 语法,但用户应考虑对代码进行此项修改,以避免在多用户数据库中可能出现的冲突。
如果需要在 Microsoft Access 窗口中打开了当前数据库的同时还使用其他数据库,请使用 Workspace 对象的 OpenDatabase 方法。OpenDatabase 方法实际并不在 Microsoft Access 窗口中打开第二个数据库,而只是返回一个表示第二个数据库的 Database 变量。下面的示例返回一个指向当前数据库的指针和一个指向 Contacts.mdb 数据库的指针。
Dim dbsCurrent As Database, dbsContacts As Database
Set dbsCurrent = CurrentDb
Set dbsContacts = DBEngine.Workspaces(0).OpenDatabase("Contacts.mdb")