会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > 模块函数VBA > 正文

关闭所有打开的Access对象

时间:2004-11-23 11:38 来源:Office中国/Access中国 作者:Benjamin… 阅读:

Public Function CloseObj()
Dim intSt As Integer, intType As Integer, strName As String
Dim rs As DAO.Recordset, J As Long, VarReturn As Variant
'Set rs = Nothing
Set rs = CurrentDb.OpenRecordset("SELECT MSysObjects.Name, MSysObjects.Type " & _
                                 " FROM MSysObjects WHERE (((MSysObjects.Name) " & _
                                 " Not Like 'Msys*' And (MSysObjects.Name) Not Like '~*') " & _
                                 " AND ((MSysObjects.Type)<>3 And (MSysObjects.Type)<>-32757 " & _
                                 " And (MSysObjects.Type)<>-32758));")
'Set rs = CurrentDb.OpenRecordset("Select * from DB_Object")
rs.MoveFirst
VarReturn = SysCmd(acSysCmdInitMeter, "关闭OBJECT", rs.RecordCount)
Do Until rs.EOF
J = J + 1
intType = GetTT(rs.Fields(1))
strName = rs.Fields(0)
DoCmd.Close intType, strName, acSaveYes
'DoCmd.DeleteObject intType, strName
rs.MoveNext
  VarReturn = SysCmd(acSysCmdUpdateMeter, J)
Loop
Set rs = Nothing
End Function
Public Function GetTT(var As Variant) As Integer
If var = -32768 Then
GetTT = 2
ElseIf var = 1 Or var = 6 Then
GetTT = 0
ElseIf var = -32766 Then
GetTT = 4
ElseIf var = -32761 Then
GetTT = 5
ElseIf var = -32764 Then
GetTT = 3
ElseIf var = 5 Then
GetTT = 1
End If
End Function

本人用的,关闭所有的OBJECT

(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: