【发布时间】:2014-10-16 05:07:40
【问题描述】:
我想知道是否可以进行动态枚举。
说明:我有一个功能可以在 ms 访问中将错误添加到错误日志中。我的 Enum 变量中的类别都在一个表中。如果我使用如下所示的函数和枚举,它就可以正常工作。但问题是,类别可能会随着时间而改变。
Enum category
Category1 = 1
Category2 = 2
etc... = n
End Enum
Public Function AddError(Current_order_ID As Long, Optional Error_Category As category)
'Add the error to the log
End Function
我注意到使用 DLookups 和记录集,实际上所有的东西通常都不起作用。编译时,它会抛出“枚举内部无效”。咨询 MSDN 为我提供了以下信息:您试图将字符串或其他一些无效类型指定为 Enum 成员的值。用于指定 Enum 成员的常量表达式必须计算为 Long 类型或其他 Enum 类型。
这告诉我枚举只能容纳长类型,因此也可以容纳数字,还可以容纳其他枚举类型。
我在寻找什么: 是否有一些解决方法或方法来循环记录集或查询并将值传递给数组,然后将这些值动态分配给枚举。或者也许可以通过更改源代码/vba 文本本身来完成?
注意:我知道有很多其他方法可以将我的错误添加到日志中并且我可以这样做,但我只是想知道这是否可能做。
我期待您的反应。
【问题讨论】:
-
你能输入产生错误的实际代码行吗?您给出的代码片段是可以的。这将有助于查看实际的问题陈述。
-
上面的代码没有产生任何错误,如上所述,它工作得很好。我想我无法正确解释,但我正在寻找的是一种根据表中的值更改枚举中类别的方法,如果可能的话。
-
@JenZzz 我只了解您帖子的第一部分。因此,您正在为错误类型传递一个 Enum。您所说的类别可能会改变是什么意思?分配给枚举的数字?
标签: ms-access enums vba ms-access-2007