本文將告訴您,Microsoft Office Outlook 2003 如何尋找表單、表單快取的位置、如何變更表單快取大小,以及如何使用 ForceFormReload 登錄機碼。本文也將告訴您,使用 Outlook 表單快取時會發生的某些問題,以及如何針對這些問題進行疑難排解。
本文將說明 Outlook 表單快取。本文也將告訴您,Outlook 2003 中可能會發生的表單快取問題。
Outlook 會將自訂表單的本機複本儲存在快取中。Outlook 這樣做的目的是避免在每次開啟項目時都必須從磁碟擷取表單。 當表單儲存在
Microsoft Exchange 公用資料夾或 Exchange Server 上的公司表單檔案庫時,Outlook
可以使用表單的快取版本。這能協助提升本機電腦與伺服器電腦的效能。
使用表單快取時可能會發生某些問題。
當您開啟資料夾中的新項目或現有項目時,通常會發生這些問題。您可能會收到下列其中一種錯誤訊息:
訊息 1
訊息 2
無法顯示檢視此郵件時所需的表單。請連絡您的電子郵件管理員。
有時候 Outlook
可能沒有顯示錯誤訊息,但開啟了預設表單,而非自訂表單。
尋找表單
本節將告訴您,開啟項目時 Outlook 如何尋找所需的表單。當您第一次建立使用自訂表單的項目時,該項目的 [郵件類別]
欄位會設定為表單的名稱。例如,如您使用公用資料夾中名為 "Corporate" 的自訂工作表單,郵件類別會是
PM.Task.Corporate。
開啟該項目時,Outlook 會檢查 [郵件類別] 欄位,以判斷要使用哪個表單來顯示該項目。
接著,Outlook 會搜尋所需的表單。Outlook 會以下列指定的順序搜尋下列位置:
- 記憶體
如果您已開啟使用相同表單的項目,Outlook
會發現記憶體中已有該表單,並使用該表單的複本,而非重新載入該表單。 - 表單快取
Outlook 會檢查您電腦上的表單快取,判斷您先前是否已使用過該表單。
如果在快取中找到該表單,Outlook 會從快取中載入該表單。 - 目前的資料夾
如果該表單不在快取中,Outlook 會檢查該表單是否已發佈到目前的資料夾。
搜尋時不會尋找其他資料夾,包括上層資料夾。已發佈到資料夾的表單是以隱藏項目的方式儲存,使用任何 Outlook 檢視方式都看不到。 - 個人表單檔案庫
如果在目前的資料夾中找不到該表單,Outlook 會檢查「個人表單」檔案庫。
「個人表單」檔案庫是儲存在預設郵件儲存區的最上層資料夾。預設的郵件儲存區是包含 [收件匣] 資料夾 (用於儲存內送郵件) 的資料夾集合。 - 公司表單檔案庫
如果在「個人表單」檔案庫中找不到該表單,Outlook 接著會檢查
Microsoft Exchange Server 上的「公司表單」檔案庫。 - Web 表單檔案庫
如果您建立 HTML 表單、將該 HTML 表單發佈到 Web 伺服器,接著在
Outlook 中啟用 Web 服務,Outlook 會檢查該表單之 HTML 版本的可用性。Outlook 接著會在您的網頁瀏覽器中開啟該表單。
一般而言,此功能極少使用,但某些組織可能會啟用此功能。
如果在上述任何位置都找不到該表單,則該項目會以該類型項目的標準表單顯示。
例如,可能會使用標準電子郵件訊息表單來代替自訂電子郵件訊息表單,或使用標準連絡人表單來取代自訂連絡人表單。
當 Outlook
檢查更新的表單時,會比較快取中之表單與原始位置中之表單的上次修改時間。如果原始位置包含更新的表單,Outlook
會下載該更新的版本,然後更新表單快取。
尋找表單快取
您可以在下列資料夾中尋找表單快取:
C:\Documents and
Settings\<user_name>\Local Settings\Application
Data\Microsoft\FORMS
Outlook 2003 支援漫遊使用者。因此,表單快取位置可能會變更。
表單快取位置視目前登入到電腦的使用者而定。您無法變更使用者設定以指示表單快取位置。
因此,您無法將預設的表單快取位置變更到其他位置。
瞭解表單快取架構
警告 不當使用「登錄編輯程式」可能會導致嚴重的問題,甚至必須重新安裝作業系統。Microsoft
並不保證可以解決您不當使用「登錄編輯程式」所導致的問題。請自行承擔使用「登錄編輯程式」的一切風險。
表單快取包含
Frmcache.dat 檔案。Frmcache.dat 檔案包含摘要資訊,以及預設 Outlook 表單與您使用之任何自訂表單的指標。
自訂表單的快取複本是儲存在 Forms 資料夾的子資料夾中。
該 Forms 資料夾的子資料夾是以隨機方式命名。
但是,子資料夾的名稱會與表單名稱類似。儲存在這些資料夾中的實際表單會以加密方式命名,但是表單的副檔名會是 .tmp。
如果您不知道包含特定表單的資料夾是哪一個,則可以使用資料夾的時間戳記或表單的時間戳記來協助尋找表單。
Outlook
也會儲存對應已快取自訂表單的登錄機碼。該登錄機碼位於下列位置:
HKEY_CURRENT_USER\Software\Classes\CLSID
在舊版 Outlook
中建立表單時,表單快取不會追蹤表單的來源。例如,假設您有兩個已發佈到不同公用資料夾的表單,且兩個表單具有相同的名稱。
如果您存取第一個資料夾,會將資料夾中的表單放入快取。接著,如果您存取第二個資料夾,Outlook
仍會使用來自第一個資料夾的已快取表單,而非第二個資料夾中的表單。這表示每個表單名稱 (或 [郵件類別] 欄位) 應該是唯一的,以避免使用表單時發生衝突。
這是從 Microsoft Outlook 97 就開始採用的表單快取設計。
Outlook 2003 中的表單快取方式已有變更。在
Outlook 2003 中,也會將資料夾與表單檔案庫的相關資訊放入快取。此設計變更是為了避免安全性相關問題。例如,您在 Outlook 2003
中可能有十個不同的公用資料夾,且發佈在十個資料夾中的表單都具有相同名稱。在舊版 Outlook 中,這些表單會快取一次,接著 Outlook
每次都會使用來自本機表單的相同表單,因為所有的表單都具有相同的名稱。但是,Outlook 2003
會將每個資料夾的表單都放入快取。
瞭解與變更表單快取大小
根據預設,Outlook 會設定最大 2048 KB 的表單快取大小上限。如果要變更此設定,請依照下列步驟:
- 在 [工具] 功能表上,按一下
[選項]。
- 按一下 [其他] 索引標籤,再按一下
[進階選項]。
- 按一下 [自訂表單],在 [硬碟的最大空間]
中輸入大於 2048 的數字,然後按一下 [確定]。
達到您設定的表單快取磁碟空間上限時,會從快取中清除最舊的未使用表單。
注意 表單快取的大小是儲存在 Frmcache.dat 檔案中。Frmcache.dat 檔案的格式並未記錄。不支援直接修改
Frmcache.dat 檔案。因此,您無法以程式設計方式變更表單快取的大小。Microsoft 不支援直接修 Forms 資料夾中的任何內容,除非
Microsoft 公佈變更方式,或「Microsot 技術支援處」為疑難排解用途提出如此的建議。修改 Forms
資料夾的任何內容之前,您必須先行備份。
還原意外刪除的表單
如果您意外刪除已發佈的表單,且無法從發佈表單的原始資料夾修復該表單時,您或許可以從表單快取修復該表單的複本。
如需有關如何從表單快取修復表單的詳細資訊,請按一下下面的文件編號,檢視「Microsoft
知識庫」中的文件:
292494?
(http://support.microsoft.com/kb/292494/
)
OL2002:Restoring an Outlook form from a cached copy
針對表單快取進行疑難排解
如表單快取無法正確運作,或開啟項目或自訂表單時發生問題,可能是其他因素導致未預期的情形。刪除表單快取前,請使用下列疑難排解方法。
- 方法 1
確認項目使用 One-Off
表單
您可以將表單定義儲存在項目中,而非儲存在已發佈的位置中。
如果將表單定義儲存在項目中然後開啟開項目,您使用的表單就永遠會是儲存在該項目中的表單。如果修改表單的已發佈版本,One-Off
項目會繼續使用您儲存在該項目中之表單的舊版本。使用表單快取時這可能會導致發生問題,但是這是 One-Off
項目的運作方式。
判斷表單定義是否儲存在項目中,因為這可能會導致未預期的情形。
這可能會讓您誤以為問題是與表單快取有關。
如需有關 One-Off
項目如何運作的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:290657?
(http://support.microsoft.com/kb/290657/
)
OL2002:Description of form definitions and one-off forms in Outlook 2002
- 方法 2
確認問題與記憶體無關。
Outlook 可能未將表單從記憶體釋放。
此問題可能與您在自訂表單中實作 Visual Basic Scripting Edition 程式碼的方式有關。如果 Outlook
未將表單從記憶體中卸載,您可能必須結束並重新啟動 Outlook。這樣可從記憶體移除表單,並強制 Outlook
從快取、表單檔案庫或資料夾載入表單。
您也必須確定 Outlook 已結束。您可以使用「Microsoft Windows
工作管理員」來確認 Outlook 並不在執行中。不過,Microsoft 建議您重新啟動電腦以確定問題與記憶體無關。
如果 Outlook
並未結束,則可能是表單快取問題的原因。如果表單包含 Visual Basic Scripting Edition 程式碼,請嘗試判斷表單是否包含導致
Outlook 無法結束的項目。此外,請停用任何 COM 增益集或任何非標準 Microsoft Exchange
擴充元件。這些項目可能是導致發生問題的原因。
清除表單快取
您可以使用不同的方法來清除 Outlook 表單快取。每種方法各有優缺點。
使用 ForceFormReload 登錄機碼
如果您懷疑表單快取是偶爾造成問題的原因,且無法判斷問題的確實成因,可以設定 Outlook 的
ForceFormReload 登錄機碼。如果啟用
ForceFormReload 登錄機碼,且當 Outlook 在開啟以自訂表單為基礎的項目時發生錯誤,則 Outlook 會自動清除此特定表單的快取。
接著,Outlook 會嘗試再開啟該項目。雖然此方法並未修正表單快取問題的成因,但卻能讓自訂表單的使用者找出問題。
如果要啟用
ForceFormReload 登錄機碼,請依照下列步驟:
- 啟動 [登錄編輯程式]。
- 按一下登錄中的下列機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Outlook
- 在 [編輯] 功能表上,按一下
[新增值],再新增下列登錄值:
摺疊此表格展開此表格
| 數值名稱 | ForceFormReload |
| 資料類型 | REG_DWORD |
| 數值資料 | 1 |
- 結束 [登錄編輯程式]。
注意 此功能也適用於已安裝最新版 Service Pack 的 Outlook 2000 與 Outlook
2002。
如需有關如何取得最新版 Service Pack
的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:285129?
(http://support.microsoft.com/kb/285129/
)
OL2000:Error Message: The form you have selected...cannot be displayed, please contact your administrator
305403?
(http://support.microsoft.com/kb/305403/
)
OL2002:Error Message: The form you have selected...cannot be displayed, please contact your administrator
針對開啟項目時可能會發生的表單相關問題進行疑難排解
如果開啟以特定自訂表單為基礎的項目時發生問題,該問題可能與該特定表單有關,而非與表單快取本身有關。
下列方法將告訴您,如何針對特定表單問題進行疑難排解。您必須依這些方法列出的順序來執行。
- 方法 1
您可以停用表單中的自訂 Visual Basic Scripting Edition
程式碼。這可能表示問題與 Visual Basic Scripting Edition 程式碼有關。如果要執行這項操作,請在開啟項目時按住 SHIFT
鍵。這樣能避免 Visual Basic Scripting Edition 程式碼執行。 - 方法 2
您可以從所有表單頁面移除所有控制項。表單上的自訂控制項初始化時可能發生問題,且可能導致
Outlook 無法開啟表單。下列原因可能導致 Outlook 無法開啟表單:
- 本機電腦尚未安裝該自訂控制項。
- 授權登錄機碼不正確。
您可以在設計模式開啟該表單,從所有表單頁面移除所有控制項,使用其他名稱重新發佈該表單,然後嘗試開啟以新發佈之表單為基礎的新項目。
如果這樣可以解決問題,表示問題是控制項所造成。 - 方法 3
您可以從表單移除所有自訂欄位。問題可能與表單上的欄位有關。欄位中可以包含公式。
這些公式可能會建立循環參照,循環參照會導致效能問題或其他問題,而影響表單的開啟方式。
這種情形並不常見,但如果您懷疑表單可能已損毀,可以從表單移除所有自訂欄位,然後使用其他名稱重新發佈表單,以進行測試。
瞭解表單快取問題
因為安全性變更與架構變更,Outlook 2003 中可能會發生新的表單快取問題。本節將說明 Outlook 2003
表單快取的已知問題。本節也會提供 Hotfix 可用性狀態的相關資訊。有新資訊可用時,本節將立即更新。
- 資料夾命名問題導致 Outlook 2003 停止回應
當 Outlook
重複將具有相同名稱的表單放入快取時,Outlook 應該附加編號組合至表單快取中的檔案系統資料夾。此編號組合應該從 001
開始,以遞增方式為檔案名稱加上編號。但是,Outlook 2003 的原始版本並無法正確處理這些檔案名稱。資料夾的命名會發生錯誤。
當表單快取五次後,第六次的快取動作會失敗。這會導致 Outlook 停止回應。
如果要判斷是否發生此問題,請檢查本機硬碟上的表單快取。
一般而言,表單快取的路徑如下:
C:\Documents and Settings\<username>\Local
Settings\Application Data\Microsoft\FORMS
每一個已放入快取的表單會有一個對應的資料夾。
資料夾名稱對應到表單的 [郵件類別] 欄位。如果您的電腦發生此問題,您會看到數字 0
附加到資料夾名稱,如下列範例所示:
IPM.Contact.FormName
IPM.Contact.FormName00000
IPM.Contact.FormName0000
IPM.Contact.FormName000
IPM.Contact.FormName00
使用「清除快取」方法來清除表單快取。
在快取更多表單之前,此問題可算是已暫時解決;但快取更多表單後,會再發生此問題。
有一個 Hotfix 可以解決此問題。
您可以與「Microsoft 技術支援處」連絡以取得此 Hotfix。此 Hotfix 預定將會包含在 Outlook 2003 Service Pack 1
中。 - 使用我的最愛資料夾存取公用資料夾時發生問題
如果使用 [我的最愛]
資料夾存取公用資料夾,然後開啟以自訂表單為基礎的項目,每次您開啟新項目或現有項目時表單都會被放入快取。[我的最愛] 資料夾在下列案例中是問題的成因:
- 您使用 [資料夾清單] 導覽窗格來檢視所有 Outlook 資料夾,然後存取 [我的最愛]
資料夾。
- 您使用特定項目類型 (例如,「行事曆」或「連絡人」) 的導覽窗格,然後使用 [其他 <項目類型>]
資料夾。此資料夾清單也與使用 [我的最愛] 資料夾有關。
如果需要此問題的暫時替代解決方案,請不要使用 [我的最愛] 資料夾。使用 [資料夾清單]
導覽窗格直接存取資料夾。
注意 此問題會增加快取頻率。這樣前一個問題會很快再發生。
有一個 Hotfix 可以解決此問題。但是,請安裝最新的
Hotfix 彙總套件,因為最新的 Hotfix 彙總套件除了包含此 Hotfix 之外,還包含其他快取相關的
Hotfix。
833856?
(http://support.microsoft.com/kb/833856/
)
Description of the Outlook 2003 hotfix package:January 20, 2004
此 Hotfix 預定將會包含在 Outlook 2003 Service Pack 1 中。
- 使用 ForceFormReload 登錄機碼時發生損毀
Outlook 2003
允許您設定選擇性的 ForceFormReload 登錄機碼。在舊版 Outlook 中,可在表單無法載入時使用 ForceFormReload 登錄機碼。Outlook 會自動刪除有問題之表單的表單快取項目,然後嘗試重新開啟該表單。
這可間接協助解決許多表面上隨機發生的表單快取問題。但是,如果您搭配 Outlook 2003 使用 ForceFormReload 登錄機碼,Outlook 2003 可能會損毀。
有一個 Hotfix 可以解決此問題。
您可以與「Microsoft 技術支援處」連絡以取得此 Hotfix。此 Hotfix 預定將會包含在 Outlook 2003 Service Pack 1
中。 - Outlook 不正確地快取兩次表單
Outlook 可能會不正確地快取兩次表單。
這最後會導致表單快取損壞。
有一個 Hotfix 可以解決此問題。您可以與「Microsoft 技術支援處」連絡以取得此 Hotfix。此
Hotfix 預定將會包含在 Outlook 2003 Service Pack 1 中。 - 發生公司表單檔案庫問題與快取模式問題
Outlook 無法正確快取自訂表單的問題有許多種。
這些問題可能發生在離線模式、快取模式與遺失與伺服器的連線等情況。這些問題中的大部分都與在「公司表單」檔案庫發佈表單有關。
但是,問題的範圍可能更大,而且可能包含發佈在其他位置的任何表單。這些問題預計將在 Outlook 2003 Service Pack 1
中解決,但我們並不提供相關的 Hotfix 以解決這些問題。 - 發生 Outlook 尋找命令的問題
如果使用 Outlook 的 [尋找]
命令來篩選資料夾中顯示的項目,然後開啟項目,使用自訂表單的項目可能無法正確顯示。
這不是表單快取問題,但使用者可能會將此問題與表單快取問題搞混。
有一個 Hotfix 可以解決此問題。您可以與「Microsoft
技術支援處」連絡以取得此 Hotfix。此 Hotfix 預定將會包含在 Outlook 2003 Service Pack 1 中。