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