關(guān)閉所有打開的Access對象

字號:

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.MoveFirstVarReturn = SysCmd(acSysCmdInitMeter, "關(guān)閉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 = 5Else
    If var = -32764 Then
    GetTT = 3
    ElseIf var = 5 Then
    GetTT = 1
    End If
    End Function
    '本人用的,關(guān)閉所有的OBJECT