We couldn’t sign you in
Select the account you want to use.

進階: 須具備專家編碼、 互操作性與多重使用者技巧。本文僅適用於 Microsoft Access 資料庫 (.mdb)。

徵狀

資料存取物件 (DAO) LastUpdated屬性會傳回不正確的日期/時間的 Microsoft Access 表單、 報表、 巨集和模組。

原因

Microsoft Access 不會通知有關的存取特定物件 (表單、 報表、 巨集和模組); 修改 Microsoft Jet 資料庫引擎因此,在MSysObjects資料表中的 [ DateUpdate ] 欄會永遠不會更新為正確的日期和時間。相同的行為是使用 Microsoft Access 資料庫引擎的 Microsoft Access 2007,如此。

狀態

Microsoft 已確認這是本文開頭所列的 Microsoft 產品的問題。

其他相關資訊

DAO 所提供的LastUpdated屬性會傳回正確的資料庫引擎物件 (資料表、 查詢和關聯性) 日期/時間,但它只會傳回建立日期,而不的上次修改日期為 Microsoft Access 特定物件 (表單、 報表、 巨集和模組)。之前 Microsoft Access 2000 中,Microsoft Access 會使用 Jet 資料庫 (.mdb) 檔案來儲存這兩個資料庫物件 (資料表、 查詢和關聯性),以及 Microsoft 存取特定物件 (表單、 報表、 巨集和模組)。Microsoft Access 會將其特定的物件存入 Jet 系統資料表,特別是 MSysObjects 和 MSysModules (或 MSysModules2) 資料表。在 MSysObjects 資料表中的 [ DateUpdate ] 欄會負責儲存物件的上次修改日期,而為 DAO LastUpdated屬性用來傳回物件的上次修改日期欄位。當使用者修改並儲存在較早版本中的物件時,Microsoft Access 會通知 Jet 資料庫引擎已修改的物件,,,Jet 會更新 [ DateUpdate ] 資料行,以目前的日期和時間。在 Access 2000 引進了 Access 專案 (.adp) 檔案,會使用 [直接連線到 Microsoft SQL Server 資料庫而不需使用 Jet 資料庫引擎的功能。Jet 資料庫引擎 (或存取資料庫引擎) ADP 檔案將不會使用,因為存取無法使用先前用於存取特定物件的 Jet 資料庫相同的儲存格式。它必須將它們儲存在 Jet 資料庫和 Access 專案中存取以新 OLE 文件儲存格式。當使用者一開始建立新 Microsoft Access 特定的物件,例如表單),資料庫引擎仍然輸入目前日期和時間在 MSysObjects 資料表中的DateCreate和DateUpdate資料行。不過,當使用者修改並儲存文件時,Microsoft Access 不會通知資料庫引擎中;因此, DateUpdate資料行永遠保持相同。此外,您可能已經注意到 [資料庫] 視窗 (在 Access 2007 之前版本中) 和在 Access 2007 或存取 2010年瀏覽窗格會顯示正確的日期和時間物件的最後一次修改。這是因為 Microsoft Access 都會使用它自己的內部的機制,來儲存建立的日期和已修改、 獨立的資料庫引擎的日期。不幸的是,Microsoft Access 不會公開其物件模型中; 此資訊因此,是無法用程式設計方式取得這項資訊在 Access 中。

重現問題的步驟

  1. 啟動 Microsoft Access,然後建立一個新的空白資料庫。

  2. 在 [設計] 檢視中建立新的空白表單。

  3. 您可以新增 [文字方塊] 到表單。

  4. 將表單儲存為frmLastUpdated,,然後關閉它。

  5. 在 Access 2003 和舊版的 Access 中,選取 [檢視] 功能表然後按一下 [詳細資料。在 Access 2007 或存取 2010年,類別中的標頭左邊的 [瀏覽] 窗格上按一下滑鼠右鍵,並按一下 [檢視詳細資料。這會顯示每個物件的已修改] 及 [建立日期。請注意,已修改] 及 [建立frmLastUpdated 表單的資料行設定為相同的日期和時間。

  6. 請按 CTRL + G 組合鍵在 [Visual Basic 編輯器] 中開啟 [即時運算] 視窗。(在 Access 2007 或存取 2010年,您必須先啟用內容或資料庫必須位於信任的位置)。

  7. 在 [即時運算] 視窗中,輸入下面這一行,然後按 ENTER 鍵:

    ?CurrentDb.Containers("Forms").Documents("frmLastUpdated").LastUpdated

    請注意,傳回的日期和時間會對應到已修改] 及 [建立資料行,在 [資料庫] 視窗中。

  8. 請按 ALT + F11 鍵切換回 [Microsoft Access。

  9. 在 [設計] 檢視中開啟 frmLastUpdated 表單。

  10. 第二個文字方塊加入表單,然後儲存並關閉它。請注意在 [資料庫] 視窗中的 [修改日期] 欄位包含的更新的日期及時間的表單。

  11. 重複步驟 7 和 8。

附註LastUpdated屬性仍會傳回原始日期和時間,而不是新的日期和時間顯示在 [資料庫] 視窗中 [修改日期] 欄位中。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×