我正试图在Access项目中构建一个过程,该过程将接受表或表单作为参数的一部分。如果对象是表,那么它应该检查表的字段;如果是表单,则应该检查窗体的控件。
我曾尝试使用变量或对象变量类型作为参数。但是,无论哪种方式,当我检查VarType()时,传递的变量都是对象类型,所以我无法区分它们。(顺便说一下,我目前正在将一个表作为TableDef对象传递。)
我会尝试根据参数类型重载函数,但显然这在VBA中是不可用的(据我从Function Overloading and UDF in Excel VBA了解)。有什么建议吗?
发布于 2013-12-18 19:14:18
若要在VBA中测试某个类,请使用TypeOf和Is运算符的组合:
Sub WishVBAHadOverloads(ByVal Obj As Object)
If TypeOf Obj Is TableDef Then
Dim Def As TableDef
Set Def = Obj
' work with Def...
Exit Sub
End If
If TypeOf Obj Is Form Then
Dim Frm As Form
Set Frm = Obj
' work with Frm...
Exit Sub
End If
Err.Raise 999, "WishVBAHadOverloads", "Bad argument type - expected a TableDef or Form"
End Subhttps://stackoverflow.com/questions/20664923
复制相似问题