1. ホーム
  2. データベース
  3. アクセス

Access 2000、Access 2002、Access 2003のデータベースから削除されたテーブルを復元する方法

2022-01-16 21:07:41
 注意:この記事のサンプルコードでは、Microsoft Data Access Objectsを使用しています。 コードを正しく動作させるためには、Microsoft DAO 3.6オブジェクト・ライブラリを参照する必要があります。 これを行うには、ツールメニューのVisualBasic Editorをクリックし、リファレンスに移動して、Microsoft DAO 3.6 Object Libraryのチェックボックスが選択されていることを確認します。
1. MicrosoftAccessでデータベースを開きます。
2. データベース] ウィンドウで、[オブジェクト] 、 [モジュール] の順にクリックし、[新規作成] をクリックします。
3. 以下のコードを入力または貼り付け、でモジュールを作成するだけです。 
コピーコード コードは以下の通りです。

Function RecoverDeletedTable() 
On Error GoTo ExitHere 
'*Declarations* 
  Dim db As DAO.Database 
  Dim strTableName As String 
  Dim strSQL As String 
  Dim intCount As Integer 
  Dim blnRestored As Boolean 
'*Init* 
  Set db = CurrentDb() 
'*Procedure* 
  For intCount = 0 To db.TableDefs.Count - 1 
    strTableName = db.TableDefs(intCount).Name 
    If Left(strTableName, 4) = "~tmp" Then 
      strSQL = "SELECT DISTINCTROW [" & strTableName & "]. * INTO " & Mid(strTableName, 5) & " FROM [" & strTableName & "];" 
      DoCmd.SetWarnings False 
      DoCmd.RunSQL strSQL 
      MsgBox "A deleted table has been restored, using the name '" & Mid(strTableName, 5) & "'", vbOKOnly, "Restored& quot; 
      blnRestored = True 
    End If 
  Next intCount 
  If blnRestored = False Then 
MsgBox "No recoverable tables found", vbOKOnly 
  End If 
'*EXIT/ERROR* 
ExitHere: 
  DoCmd.SetWarnings True 
  Set db = Nothing 
  Exit Function 
ErrorHandler: 
  MsgBox Err.Description 
  Resume ExitHere 
End Function

4. デバッグ]メニューの[データベース名データベース名のコンパイル]をクリックします。
5. RecoverTableモジュールとして保存します。 この機能をテストするために、まず2つのテーブルを作成し、行を追加し、両方のテーブルを削除します。
イミディエイトウィンドウで、次の行を入力し、ENTERキーを押します。
RecoverDeletedTable