Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

恢复删除的表

时 间:2008-06-02 08:44:53
作 者:十段   ID:563  城市:上海
摘 要:说明:在数据库未压缩、修复、关闭的前提下,运行该模块,即可恢复已被删除的所有表。
正 文:

Function UndoTable() As Integer
'===============================================================================
'-函数名称: UndoTable
'-功能描述: 恢复删除的数据库对象
'-输入参数说明:
'-返回参数说明: Integer 恢复数据库的个数
'-使用语法示例: MsgBox UndoTable()
'-参考: Access中国论坛帖子
'-使用注意:
'-兼容性: 2000,XP,2003
'-作者: fan0217@163.com
'-更新日期: 2006-03-17
'===============================================================================
'On Error GoTo Err_UndoTable
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQL As String
Dim strTemName As String
Dim i As Integer

Set conn = CurrentProject.Connection

strSQL = "Select * FROM MSysObjects "
strSQL = strSQL & "Where(Left$([Name], 1) = '~') And (Left$([Name], 4) <> 'Msys') And (MSysObjects.Type) = 1 "

rs.Open strSQL, conn, 1, 3
Do While Not rs.EOF
strTemName = Right(rs("Name"), Len(rs("Name")) - 4)
strSQL = "Select * INTO [Undo_" & strTemName & "] FROM [" & rs("Name") & "];"
'conn.Execute strSQL
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
i = i + 1
rs.MoveNext
Loop

UndoTable = i

rs.Close
Set rs = Nothing
Set conn = Nothing

Exit_UndoTable:
Exit Function

Err_UndoTable:
Set rs = Nothing
Set conn = Nothing
MsgBox Err.Description
Resume Exit_UndoTable

End Function



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助