CurrentProject 對(duì)象引用當(dāng)前 Microsoft Access 項(xiàng)目(.adp)或 Access 數(shù)據(jù)庫(.mdb)的項(xiàng)目。
CurrentProject 對(duì)象有好幾個(gè)集合,每個(gè)集合都包含當(dāng)前數(shù)據(jù)庫中的特定 AccessObject 對(duì)象。下表列出了每個(gè)集合的名稱及其所含對(duì)象的類型。
集合 |
對(duì)象類型 |
所有窗體 |
|
所有報(bào)表 |
|
所有宏 |
|
所有模塊 |
|
所有數(shù)據(jù)訪問頁 |
注釋 上表中的集合包含了數(shù)據(jù)庫中各方面的對(duì)象,不管它們是打開還是關(guān)閉。
例如,代表窗體的 AccessObject 對(duì)象是 AllForms 集合的一個(gè)成員,而 AllForms 集合是當(dāng)前數(shù)據(jù)庫中 AccessObject 對(duì)象的一個(gè)集合。在 AllForms 集合中,集合的每個(gè)成員從零開始編制索引。通過按名稱引用窗體或引用其在集合中的索引,可以引用 AllForms 集合中的單個(gè) AccessObject 對(duì)象。如果想引用 AllForms 集合中的特定對(duì)象,最好按名稱引用它,因?yàn)轫?xiàng)的集合索引可能會(huì)變動(dòng)。如果對(duì)象名中包含空格,則必須將名稱用方括號(hào)([ ])括起來。
語法 |
示例 |
AllForms!formname |
AllForms!OrderForm |
AllForms![form name] |
AllForms![Order Form] |
AllForms("formname") |
AllForms("OrderForm") |
AllForms(index) |
AllForms(0) |
下面的示例打印 CurrentProject 對(duì)象的一些當(dāng)前屬性設(shè)置,然后設(shè)置選項(xiàng)以顯示應(yīng)用程序中的隱藏對(duì)象:
Sub ApplicationInformation()
' Print name and type of current object.
Debug.Print Application.CurrentProject.FullName
Debug.Print Application.CurrentProject.ProjectType
' Set Hidden Objects option under Show on View Tab
'of the Options dialog box.
Application.SetOption "Show Hidden Objects", True
End Sub
下一個(gè)示例顯示如何使用“自動(dòng)化”從另一個(gè) Microsoft Office 應(yīng)用程序中使用 CurrentProject 對(duì)象。首先,從另一個(gè)應(yīng)用程序中創(chuàng)建對(duì) Microsoft Access 的引用,方法是:在“模塊”窗口中單擊“工具”菜單上的“引用”。選中 Microsoft Access Object Library 旁的復(fù)選框。然后在該應(yīng)用程序的 Visual Basic 模塊中輸入下列代碼,并調(diào)用 GetAccessData 過程。
該示例將一個(gè)數(shù)據(jù)庫名和報(bào)表名傳遞給一個(gè)創(chuàng)建 Application 類的新實(shí)例的過程,打開數(shù)據(jù)庫,并使用 CurrentProject 對(duì)象和 AllReports 集合驗(yàn)證指定的報(bào)表是否存在。
Sub GetAccessData()
' Declare object variable in declarations section of a module
Dim appAccess As Access.Application
Dim strDB As String
Dim strReportName As String
strDB = "C:\Program Files\Microsoft "_
& "Office\Office11\Samples\Northwind.mdb"
strReportName = InputBox("Enter name of report to be verified", _
"Report Verification")
VerifyAccessReport strDB, strReportName
End Sub
Sub VerifyAccessReport(strDB As String, _
strReportName As String)
' Return reference to Microsoft Access
' Application object.
Set appAccess = New Access.Application
' Open database in Microsoft Access.
appAccess.OpenCurrentDatabase strDB
' Verify report exists.
On Error Goto ErrorHandler
appAccess.CurrentProject.AllReports(strReportName)
MsgBox "Report " & strReportName & _
" verified within Northwind database."
appAccess.CloseCurrentDatabase
Set appAccess = Nothing
Exit Sub
ErrorHandler:
MsgBox "Report " & strReportName & _
" does not exist within Northwind database."
appAccess.CloseCurrentDatabase
Set appAccess = Nothing
End Sub