CurrentDb 方法返回一個類型為 Database 的對象變量,該變量表示當前在 Microsoft Access 窗口中打開的數(shù)據(jù)庫。
expression.CurrentDb
expression 必需。返回“應用于”列表中的一個對象的表達式。
注釋 在 Microsoft Access 中, CurrentDb 方法可建立對 Microsoft Access 數(shù)據(jù)庫 (.mdb) 中“Microsoft DAO 3.6 對象庫”的隱含引用。
為了從 Visual Basic 中對數(shù)據(jù)庫的結構及數(shù)據(jù)進行操作,必須使用數(shù)據(jù)訪問對象 (DAO)。CurrentDb 方法提供了一種不必知道數(shù)據(jù)庫的名稱即可從 Visual Basic 代碼中訪問當前數(shù)據(jù)庫的方法。有了指向當前數(shù)據(jù)庫的變量之后,還可以訪問并操作 DAO 分層結構中其他的對象和集合。
使用 CurrentDb 方法可以創(chuàng)建多個引用當前數(shù)據(jù)庫的變量。在下面的示例中,變量 dbsA 和 dbsB 都引用當前數(shù)據(jù)庫:
Dim dbsA As Database, dbsB As Database
Set dbsA = CurrentDb
Set dbsB = CurrentDb
注釋 在 Microsoft Access 先前的版本中,可以使用語法 DBEngine.Workspaces(0).Databases(0) 或 DBEngine(0)(0) 來返回一個指向當前數(shù)據(jù)庫的指針。而在 Microsoft Access 2000 中,則應使用替代的 CurrentDb 方法。CurrentDb 方法創(chuàng)建當前數(shù)據(jù)庫的另一個實例,而 DBEngine(0)(0) 語法僅引用當前數(shù)據(jù)庫打開的副本。使用 CurrentDb 方法可以創(chuàng)建引用當前數(shù)據(jù)庫的多個 Database 類型變量。Microsoft Access 仍然支持 DBEngine(0)(0) 語法,但用戶應考慮對代碼進行此項修改,以避免在多用戶數(shù)據(jù)庫中可能出現(xiàn)的沖突。
如果需要在 Microsoft Access 窗口中打開了當前數(shù)據(jù)庫的同時還使用其他數(shù)據(jù)庫,請使用 Workspace 對象的 OpenDatabase 方法。OpenDatabase 方法實際并不在 Microsoft Access 窗口中打開第二個數(shù)據(jù)庫,而只是返回一個表示第二個數(shù)據(jù)庫的 Database 變量。下面的示例返回一個指向當前數(shù)據(jù)庫的指針和一個指向 Contacts.mdb 數(shù)據(jù)庫的指針。
Dim dbsCurrent As Database, dbsContacts As Database
Set dbsCurrent = CurrentDb
Set dbsContacts = DBEngine.Workspaces(0).OpenDatabase("Contacts.mdb")