↑↑↑点击上方图片,了解详情
如何创建一个示例 Visual Basic for Applications (VBA) 函数, 在以下情况下, 您可以使用它来恢复从 Access 数据库中删除的表:
自删除表以来,数据库尚未关闭。
自删除表以来,数据库尚未被压缩。
使用 Access 用户界面删除了表。
表不包含任何多值字段或附件字段。
![34739323a6245368291f40bf999ed51e.png](https://i-blog.csdnimg.cn/blog_migrate/14489ad39a12e2444bbc9d618f831bef.png)
Sub RecoverDeletedTable()
On Error GoTo ExitHere
Dim db As DAO.Database
Dim strTableName As String
Dim strSQL As String
Dim intCount As Integer
Dim blnRestored As Boolean
Set db = CurrentDb()
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 Sub
ErrorHandler:
MsgBox Err.Description
Resume ExitHere
End Sub
![b7740a482bb1b4279d8a128df5f24999.png](https://i-blog.csdnimg.cn/blog_migrate/5e07dd0f3cfaa6c20825ee24a6e96aa9.jpeg)
![a02dd1e90cab3309fc3faf045dd78705.png](https://i-blog.csdnimg.cn/blog_migrate/68b0930d5cce1d83c974c371117a606e.jpeg)
![93ceb8c256bede490062ba81e2b5ee39.png](https://i-blog.csdnimg.cn/blog_migrate/cdd35815ef04d3b0cd7c33b4e89a52ee.jpeg)
![f7c370f2a900bc4a912b5c879bdc2cce.png](https://i-blog.csdnimg.cn/blog_migrate/4b177c05d457c6f954ccef1ffc08c40c.jpeg)
![e8954a8934d9b8dca2c4d8462b4c5513.png](https://i-blog.csdnimg.cn/blog_migrate/aad528e847b7253d204c780508d35331.jpeg)
![7abd817834c981b45814abeb2d325b36.png](https://i-blog.csdnimg.cn/blog_migrate/1b193d0e08be7479866af2453846bdf7.png)