【发布时间】:2014-01-07 00:45:15
【问题描述】:
我正在尝试在我的 Access 项目中构建一个过程,该过程将接受表格或表单作为参数的一部分。如果对象是一个表格,那么它应该检查表格的字段;如果它是一个表单,那么它应该是表单的控件。
我尝试使用变体或对象变量类型作为参数。但是无论哪种方式,当我检查 VarType() 时,传递的变量都是对象类型,所以我无法区分它们。 (顺便说一下,我目前正在将表格作为 TableDef 对象传递。)
我会尝试根据参数类型重载函数,但显然这在 VBA 中不可用(据我所知,Function Overloading and UDF in Excel VBA。有什么建议吗?
【问题讨论】:
-
“作为参数的一部分的表格或表格” 如何将表格传递给您的过程?作为表名的字符串?作为
TableDef或记录集对象? -
改用
TypeName() -
您可以在 MSysObjects 中查找它并使用 If/Then 语句运行正确的过程。表单的 MSysObjects.Type=-32768,表格的 MSysObjects.Type=1、4 或 6(取决于它们是本地的还是链接的)。