恢复从 Access 2000、 Access 2002 或 Access 2003 中数据库删除表的方法

     注意 : 本文示例代码使用 Microsoft 数据访问对象。 为此代码才能正常运行, 您必须引用 Microsoft DAO 3.6 对象库。 可以进行, 单击  工具  菜单中 VisualBasic 编辑器, 上  引用  并确保选中  Microsoft DAO 3.6 对象库  复选框。

    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” 
          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 模块。 要测试此函数, 首先创建两个表, 添加行, 并删除这两个表。
    6.    在即时窗口, 键入以下行, 然后按 ENTER 键:

    RecoverDeletedTable

Leave a Reply

Leave a Reply