重建整個資料庫

這是很多工作,所以在用完所有其他選項之後這是最後的手段。如果在不同的計算機上針對不同的使用者發生問題,則只需執行此操作。如果沒有為所有使用者發生,那麼很可能它不是一個損壞的資料庫容器。

與刪除二進位制資料的步驟類似,你將從頭開始重建資料庫。這個過程有點儀式化,但如果小心翼翼地小心謹慎,不要保留任何可能的腐敗,那麼這個過程就非常有效。

建立一個新的訪問資料庫容器

  • 在 Access 中,在檔案選項卡上,你可以選擇新建。以 ACCDB 格式建立一個新的空資料庫。

將所有物件移動到新容器

千萬不能使用匯入/匯出功能 Access 中移動的物件,而不是簡單地點選和拖動。這樣做可以將損壞的專案複製到新容器。

表:

  • 對於舊訪問容器中的每個表,在新容器中建立一個新表。
  • 從設計檢視中,複製/貼上欄位定義。
  • 檢查表屬性以確保它們在兩個資料庫中都匹配
  • 同時移動任何資料巨集(有關如何執行此操作,請參閱巨集部分)
  • 要移動資料,請將舊資料匯出為 XML 或 CSV,然後從該格式匯入。

查詢:

  • 將每個查詢載入到 SQL 檢視中。
  • 複製/貼上 SQL 文字。
  • 貼上到新資料庫中。
  • 比較查詢屬性以確保它們匹配。

表格/報告:

  • 對於每個表單/報表,使用 Application.SaveAsText 函式將表單/報表匯出到文字檔案。
  • 刪除二進位制資料(請參閱從表單文件中刪除二進位制資料以熟悉此過程)
  • 使用 Application.LoadFromText 函式將物件重新匯入新資料庫

巨集

你有三種移動巨集的方法。

  1. 在新資料庫容器中手動重新建立每個巨集。
  2. Application.SaveAsText / Application.LoadFromText 方法與 acMacro 引數一起使用。
  3. 複製/貼上每個巨集的巨集定義
    • 選擇全部(Control + A)以選擇所有巨集元素。然後複製(Control + C)。
    • 開啟一個空白的記事本文件並貼上(Control + V)巨集 XML。
    • 在新資料庫容器中建立一個新的空白巨集。
    • 在記事本中,選擇所有文字(Control + A)。然後複製(Control + C)
    • 在空白巨集中,貼上(Control + V)。應該出現巨集。儲存。

模組

  • 對於每個模組,選擇所有程式碼(Control + A)並貼上(Control + V)到新資料庫容器中。
  • 請務必檢查資料庫屬性(在 VBA 視窗中,轉到工具 - >客戶端屬性)

資料巨集

對於每個資料巨集,請使用 SaveAsText / LoadFromText 方法。

  1. 進入 VBA 立即視窗(Control + G)
  2. 輸入 Application.SaveAsText acTableDataMacro, "MyTableName", CurrentProject.Path & "\MyTableName.txt"(將 MyTableName 替換為包含資料巨集的表的名稱)
  3. 檢查檔案是否有任何腐敗跡象
  4. 在新資料庫容器中,使用 Application.LoadFromText acTableDataMacro, "MyTableName", CurrentProject.Path & "\MyTableName.txt" 載入定義

如前所述,這是一項很多工作,但它有結果。將 Access 97 資料庫遷移到 2000 或 Access 2000 資料庫遷移到 2003 時,也應使用此方法。