Determine Object Type

后端 未结 2 1451
一个人的身影
一个人的身影 2021-01-05 05:59

Is there a way to determine the Object type, when passing a reference to a function?

I\'m using a security permissions function, which determines if the user has per

相关标签:
2条回答
  • 2021-01-05 06:28

    Simplest way to determine the access type in access is to do an object lookup within the Access' system tables.

    Here would be the lookup:

    DLookup("Type","MSysObjects","NAME = '" & strObject & "'")
    

    strObject is the name of the object within Access

    The result is one of the number below OR NULL if the object does not exist in Access

    1 = Access Table
    4 = OBDB-Linked Table / View
    5 = Access Query
    6 = Attached (Linked) File  (such as Excel, another Access Table or query, text file, etc.)
    -32768 = Access Form
    -32764 = Access Report
    -32761 = Access Module
    

    so, the dlookup would provide "-32768" for a Form or "-32764" for a Report Hope that helps

    0 讨论(0)
  • 2021-01-05 06:50

    Take a look at

    typeOf and typeName

    Generic object variables (that is, variables you declare as Object) can hold objects from any class. When using variables of type Object, you may need to take different actions based on the class of the object; for example, some objects might not support a particular property or method. Visual Basic provides two means of determining which type of object is stored in an object variable: the TypeName function and the TypeOf...Is operator.

    TypeName and TypeOf…Is
    The TypeName function returns a string and is the best choice when you need to store or display the class name of an object, as shown in the following code fragment:

    Dim Ctrl As Control = New TextBox  
    MsgBox(TypeName(Ctrl))
    

    The TypeOf...Is operator is the best choice for testing an object's type, because it is much faster than an equivalent string comparison using TypeName. The following code fragment uses TypeOf...Is within an If...Then...Else statement:

    If TypeOf Ctrl Is Button Then  
        MsgBox("The control is a button.") 
    End If
    
    0 讨论(0)
提交回复
热议问题