本文適用于 Microsoft Access 數(shù)據(jù)庫 (.mdb) 和 Microsoft Access 項(xiàng)目 (.adp)。
概要 如果您熟悉 ODBC 表和 Microsoft Access 數(shù)據(jù)庫,就會了解 ODBC 表不是按字面存儲在 Access 數(shù)據(jù)庫中。實(shí)際上,Access 數(shù)據(jù)庫包含指向后端 ODBC 表的實(shí)際位置的鏈接。
Access 數(shù)據(jù)庫中的數(shù)據(jù)訪問頁也是由鏈接表示。它們不是駐留在數(shù)據(jù)庫中的對象,如表單、報表、查詢等。數(shù)據(jù)訪問頁是 HTML 文件,它們存儲在數(shù)據(jù)庫之外的外部文件中。您在 Access 數(shù)據(jù)庫中看到的數(shù)據(jù)訪問頁對象只是指向外部 HTML 文件的鏈接。
如果數(shù)據(jù)庫或 HTML 文件被移到新的位置,則“數(shù)據(jù)庫”窗口中的數(shù)據(jù)訪問頁鏈接將不再有效。開發(fā)人員在將數(shù)據(jù)庫部署到其他計算機(jī)時可能會遇到此情況。這樣,在部署數(shù)據(jù)庫后,開發(fā)人員或最終用戶必須將數(shù)據(jù)訪問頁重新鏈接到相應(yīng)的 HTML 文件,才能使數(shù)據(jù)訪問頁正常工作。
本文提供了 Visual Basic for Applications (VBA) 示例代碼,以闡釋如何以編程方式更新 Microsoft Access 數(shù)據(jù)庫中的數(shù)據(jù)訪問頁鏈接。 更多信息 在驅(qū)動器 C 的根目錄中創(chuàng)建一個名為 Test 的新文件夾。 將 Samples 文件夾中的所有文件復(fù)制到 C:\Test 文件夾中。
注意:Samples 文件夾可能位于以下位置:
對于 Access 2002:<Office 路徑>\Office10\
對于 Access 2003:<Office 路徑>\Office11\ 使用 Access 打開 C:\Test\Northwind.mdb。 在插入菜單上,單擊模塊。 在模塊中鍵入或粘貼以下 VBA 代碼:Option Compare Database Option Explicit Sub subUpdatePageLinks() ' 'Update the links for each data access page. ' Dim aoDAP As AccessObject Dim strLocation As String Dim intPosition As Integer 'Retrieve the new path/location of the database. intPosition = InStrRev(CurrentDb.Name, "\") strLocation = Left$(CurrentDb.Name, intPosition) 'For each page... For Each aoDAP In Application.CurrentProject.AllDataAccessPages 'Select the page. DoCmd.SelectObject acDataAccessPage, aoDAP.Name, True 'Assign the new path/location to the page. aoDAP.FullName = strLocation & aoDAP.Name & ".htm" Next aoDAP MsgBox "Links Updated." End Sub 在調(diào)試菜單上,單擊編譯 Northwind。 在視圖菜單上,單擊立即窗口。 在“立即”窗口中鍵入 subUpdatePageLinks,然后按 Enter 鍵。在代碼完成運(yùn)行后,在消息框中單擊確定。 在文件菜單上,單擊“關(guān)閉并返回到 Microsoft Access”。 在“數(shù)據(jù)庫”窗口中單擊頁面,右鍵單擊任一現(xiàn)有頁,然后在快捷菜單上單擊屬性。請注意,路徑框顯示了 HTML 文件的新位置。
此示例僅用于說明目的。如果您的數(shù)據(jù)庫和 HTML 文件沒有位于同一文件夾中,您必須使用其他方法在 VBA 代碼中提供路徑。注意:要在 .adp 文件內(nèi)部使用這些代碼,必須更改以下兩個命令行: intPosition = ... strLocation = ... 這些命令行應(yīng)引用 CurrentProject 對象而不是 CurrentDB 對象。例如: intPosition = InStrRev(CurrentProject.FullName, "\") strLocation = Left$(CurrentProject.FullName, intPosition) 參考有關(guān)解決數(shù)據(jù)訪問頁問題的更多信息,請單擊幫助菜單上的 Microsoft Access 幫助,在“Office 助手”或“應(yīng)答向?qū)А敝墟I入 數(shù)據(jù)訪問頁疑難解答,然后單擊搜索查看返回的主題。
編輯:北京信誠IT保姆IT外包部 http:// www.aboverow.cn www.xcit.com.cn |