1 1 1 1 1 1 1 1 1 1 Rating 4.00 (1 Vote)

Problemstellung:

Für 32Bit und 64Bit Office Versionen

Wie kann ich alle Objekte eines Typs aus- oder einblenden?

Public Enum ObjectType
    Tables = 0
    Querys = 1
    Forms = 2
    Reports = 3
    Modules = 5
    Scripts = 4
End Enum

Public Enum HiddenType
    Sichtbar = 0
    Unsichtbar = -1
End Enum

Public Sub HiddenObject(iTyp As ObjectType, iChange As HiddenType)
On Error Resume Next
    Dim rst As DAO.Recordset
    Dim sSQL As String
    sSQL = "SELECT MSysObjects.Name, MSysObjects.Type FROM MSysObjects WHERE "
    If iTyp = Tables Then
        sSQL = sSQL & "(((MSysObjects.Name) Not Like 'MSys*') AND ((MSysObjects.Type)=1 Or (MSysObjects.Type)=6))"
    ElseIf iTyp = Querys Then
        sSQL = sSQL & "(((MSysObjects.Name) Not Like '~*') AND ((MSysObjects.Type)=5));"
    ElseIf iTyp = Forms Then
        sSQL = sSQL & "(((MSysObjects.Type)=-32768));"
    ElseIf iTyp = Reports Then
        sSQL = sSQL & "(((MSysObjects.Type)=-32764));"
    ElseIf iTyp = Modules Then
        sSQL = sSQL & "(((MSysObjects.Type)=-32761));"
    ElseIf iTyp = Scripts Then
        sSQL = sSQL & "(((MSysObjects.Type)=-32766));"
    End If
    Set rst = CurrentDb.OpenRecordset(sSQL)
    Do While Not rst.EOF
        Application.SetHiddenAttribute iTyp, rst!Name, iChange
        rst.MoveNext
    Loop
    rst.Close: Set rst = Nothing
End Sub

Der Funktion wird der Objekttyp und der Parameter "sichtbar" oder "unsichtbar" übergeben.

Aufruf:

HiddenObject Tables, Unsichtbar

würde alle Tabellen ausblenden

HiddenObject Tables, Sichtbar

würde alle Tabellen einblenden

 

Ähnliche Artikel