削除されたテーブルを復活させるには


ここで紹介する方法は以下の3条件が満足する場合のみ適用することができます。

  1. テーブルを削除してからデータベースを閉じていないこと
  2. データベースを最適化していないこと
  3. テーブルはAccess 97のユーザーインタフェースにて削除されていること

テーブルを復元する関数

リスト1-テーブルを復活する関数
Function UnDelete_FS(Optional varUnDeletedTable As Variant) _
          As Boolean

  Dim db As Database
  Dim strSQL As String
  Dim strTablename As String
  Dim intI As Integer

  On Error GoTo Err_UnDelete_FS
  Set db = CurrentDb  
  UnDelete_FS = False
  For intI = 0 To db.TableDefs.Count - 1
    strTablename = db.TableDefs(intI).Name 
    If Left(strTablename, 4) = "~tmp" Then
      strSQL = "SELECT DISTINCTROW [" & strTablename & _
           "].* INTO [" & varUnDeletedTable & _
           "] FROM [" & strTablename & "];"
      DoCmd.SetWarnings False
      DoCmd.RunSQL strSQL
      DoCmd.SetWarnings True
      UnDelete_FS = True
      Exit For
    End If
  Next intI

Exit_UnDelete_FS:
  Set db = Nothing
  Exit Function
  
Err_UnDelete_FS:
  MsgBox Err.Description
  Resume Exit_UnDelete_FS

End Function  

使用方法

  1. Access 97を起動して新規データベースを作成します。

  2. データベースウインドウが表示されたら、テーブルタブをクリックしてテーブル1を作成して保存します。

  3. 保存したテーブル1を削除します。
  4. データベースウインドウのモジュールタブをクリックしたら、新規作成ボタンをクリックします。
  5. リスト1の関数をモジュールウインドウにコピー&ペーストします。
  6. デバッグウインドウを表示させたら ? UnDelete_FS("復活テーブル") のように入力して実行します。
  7. データベースウインドウのテーブルタブをクリックして、復活テーブルが表示されているか確認します。