重建整個資料庫
這是很多工作,所以在用完所有其他選項之後這是最後的手段。如果在不同的計算機上針對不同的使用者發生問題,則只需執行此操作。如果沒有為所有使用者發生,那麼很可能它不是一個損壞的資料庫容器。
與刪除二進位制資料的步驟類似,你將從頭開始重建資料庫。這個過程有點儀式化,但如果小心翼翼地小心謹慎,不要保留任何可能的腐敗,那麼這個過程就非常有效。
建立一個新的訪問資料庫容器
- 在 Access 中,在檔案選項卡上,你可以選擇新建。以 ACCDB 格式建立一個新的空資料庫。
將所有物件移動到新容器
千萬不能使用匯入/匯出功能 Access 中移動的物件,而不是簡單地點選和拖動。這樣做可以將損壞的專案複製到新容器。
表:
- 對於舊訪問容器中的每個表,在新容器中建立一個新表。
- 從設計檢視中,複製/貼上欄位定義。
- 檢查表屬性以確保它們在兩個資料庫中都匹配
- 同時移動任何資料巨集(有關如何執行此操作,請參閱巨集部分)
- 要移動資料,請將舊資料匯出為 XML 或 CSV,然後從該格式匯入。
查詢:
- 將每個查詢載入到 SQL 檢視中。
- 複製/貼上 SQL 文字。
- 貼上到新資料庫中。
- 比較查詢屬性以確保它們匹配。
表格/報告:
- 對於每個表單/報表,使用 Application.SaveAsText 函式將表單/報表匯出到文字檔案。
- 刪除二進位制資料(請參閱從表單文件中刪除二進位制資料以熟悉此過程)
- 使用 Application.LoadFromText 函式將物件重新匯入新資料庫
巨集
你有三種移動巨集的方法。
- 在新資料庫容器中手動重新建立每個巨集。
- 將
Application.SaveAsText
/Application.LoadFromText
方法與acMacro
引數一起使用。 - 複製/貼上每個巨集的巨集定義
- 選擇全部(Control + A)以選擇所有巨集元素。然後複製(Control + C)。
- 開啟一個空白的記事本文件並貼上(Control + V)巨集 XML。
- 在新資料庫容器中建立一個新的空白巨集。
- 在記事本中,選擇所有文字(Control + A)。然後複製(Control + C)
- 在空白巨集中,貼上(Control + V)。應該出現巨集。儲存。
模組
- 對於每個模組,選擇所有程式碼(Control + A)並貼上(Control + V)到新資料庫容器中。
- 請務必檢查資料庫屬性(在 VBA 視窗中,轉到工具 - >客戶端屬性)
資料巨集
對於每個資料巨集,請使用 SaveAsText / LoadFromText 方法。
- 進入 VBA 立即視窗(Control + G)
- 輸入
Application.SaveAsText acTableDataMacro, "MyTableName", CurrentProject.Path & "\MyTableName.txt"
(將 MyTableName 替換為包含資料巨集的表的名稱) - 檢查檔案是否有任何腐敗跡象
- 在新資料庫容器中,使用
Application.LoadFromText acTableDataMacro, "MyTableName", CurrentProject.Path & "\MyTableName.txt"
載入定義
如前所述,這是一項很多工作,但它有結果。將 Access 97 資料庫遷移到 2000 或 Access 2000 資料庫遷移到 2003 時,也應使用此方法。