在vba中使用Enums作为参数

时间:2015-12-23 15:37:30

标签: vba ms-access enums access-vba

我正在使用Access 2000并尝试使用RunCode操作调用VBA函数过程。 如何使用Enum作为该函数调用的参数?

(我已经简化了以下示例中的代码,因此我们可以专注于重要部分)


Enum位于名为 Configuration_Enum 的模块中:

Public Enum configuration
  val1 = 1
  val2 = 2
End Enum

使用该枚举的函数位于模块 Configuration_Module 中:

Public Function getConfiguration(config As configuration) As Int
  getConfiguration = config
End Funtion

我可以使用Enum作为参数调用函数,而不会出现问题:VBA:

getConfiguration( Configuration_Enum.val1 )


现在我想使用vba(使用RunCode操作)进行函数调用,但它无法正常工作:

getConfiguration( [Modules]![Configuration_Enum].[val1] )  

不幸的是我使用的是德语版的Access并且没有Error-Id,所以我只能给你翻译错误信息:

  

对象不包含自动化对象' val1'。

     

您已尝试运行Visual-Basic过程来设置Object-Property。   但是,自动化流程无法访问该属性。


我试图完成的事情是否可行,或者我只是做错了吗?

1 个答案:

答案 0 :(得分:1)

我很确定你不能。您的选择是:

好:摆脱宏并在VBA中完成。

Meh:使用enum中的值作为参数,即getConfiguration(1)