在将引用传递给函数时,有没有办法确定对象类型?
我正在使用安全权限功能,该功能确定用户是否有权查看/编辑通过引用传递给它的表单。我想扩展它以包含报告。
为了使函数保持通用,我想传递一个ref作为对象的Form或Report,例如:
function gfSecurity_Permission(obj as Object)
但是,我需要确定函数中对象的type
。
有谁知道这样做的方法?
MTIA
答案 0 :(得分:11)
看看
通用对象变量(即,您声明为Object的变量) 可以保存任何类的对象。使用Object类型的变量时, 你可能需要根据类别采取不同的行动 宾语;例如,某些对象可能不支持特定的对象 财产或方法。 Visual Basic提供了两种确定方法 哪种类型的对象存储在对象变量中:TypeName function和TypeOf ...是运算符。
TypeName和TypeOf ...
该 TypeName函数返回一个字符串,是您的最佳选择 需要存储或显示对象的类名,如图所示 以下代码片段:Dim Ctrl As Control = New TextBox MsgBox(TypeName(Ctrl))
TypeOf ...运算符是测试对象的最佳选择 类型,因为它比等效的字符串比较快得多 使用TypeName。以下代码片段使用TypeOf ...在一个 如果......那么......其他声明:
If TypeOf Ctrl Is Button Then MsgBox("The control is a button.") End If
答案 1 :(得分:6)
确定访问中访问类型的最简单方法是在Access系统表中进行对象查找。
这是查找:
DLookup("Type","MSysObjects","NAME = '" & strObject & "'")
strObject
是Access
如果Access
中不存在该对象,则结果是OR NULL之下的数字之一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
所以,dlookup会为表单提供“-32768”或为报表提供“-32764” 希望有所帮助