gpt4 book ai didi

ms-access - 枚举中的数组

转载 作者:行者123 更新时间:2023-12-01 05:51:43 26 4
gpt4 key购买 nike

我想知道是否可以进行动态枚举。

说明: 我有一个功能可以将错误添加到 ms access 的错误日志中。我的枚举变量中的类别都在一个表中。如果我使用如下所示的函数和枚举,它就可以正常工作。然而,问题是类别可能会随着时间而改变。

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 成员的常量表达式的计算结果必须为 Long 类型或其他 Enum 类型。

这告诉我枚举只能包含 long 类型,因此可以包含数字,但也可以包含其他枚举类型。

我在寻找什么: 是否有一些变通方法或方法来遍历记录集或查询并将值传递给数组,然后将这些值动态分配给枚举。或者也许可以通过更改源代码/vba 文本本身来完成?

注意:我知道有很多其他方法可以将我的错误添加到日志中并且我能够这样做,但我只是想知道这是否有可能做。

我期待着您的 react 。

最佳答案

Recordset 循环遍历包含 Enum 类型的表。基本上这是编辑模块 VBA 代码。

Public Function CreateEnum()
Dim db As Database
Dim rs As Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("MYENUMS", dbOpenSnapshot)

Dim m As Module
Dim s As String
Set m = Modules("myEnumsModule")

s = "Option Compare Database"
s = s & vbNewLine & "Option Explicit"
s = s & vbNewLine
s = s & vbNewLine & "Public Enum MyEnums"
With rs
Do Until .EOF
s = s & vbNewLine & vbTab & .Fields("MYENUM") & " = " & rs.Fields("MYENUM_ID")
.MoveNext
Loop
End With
s = s & vbNewLine & "End Enum"

Call m.DeleteLines(1, m.CountOfLines)
Call m.AddFromString(s)
End Function

关于ms-access - 枚举中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25445422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com