我有一个DAO记录集,例如
Set rst = CurrentDb.OpenRecordset("Select * from EMPLOYEES")
记录集包含以下字段 - NAME,AGE,SALARY,TITLE
现在我已经创建了一个包含特定字段列表的数组 -
Dim Fields As Variant
Fields = Array("NAME", "SALARY")
想要使用数组元素
动态地从记录集中检索字段 rst.MoveNext
MsgBox(rst![Array(0)])
我收到一条错误消息,说明未在集合中找到项目'。
我知道我在这里缺少的是在感叹号('!')标志后传递字段名称变量的正确方法,但我无法弄清楚如何。有人可以帮忙吗?
答案 0 :(得分:2)
rst!FieldName
该语法实际上是以下语法糖:
rst.Fields("FieldName").Value
换句话说,通过撰写rst![Array(0)]
,您正在寻找一个名为[Array(0)]
的字段 - 感叹号之后的部分就是字面意思。
只需使用低糖语法: - )
rst.Fields(Fields(0)).Value
请注意,Array
不是您的数组变量的名称,因此[Array(0)]
并不像您可能认为的那样引用Fields(0)
(而Array(0)
1}}将创建一个新的值数组,包含值0
)。如果名称Fields
令人困惑,请尝试以下操作:
Dim fieldList As Variant
fieldList = Array("NAME", "SALARY")
...
MsgBox rst.Fields(fieldList(0)).Value
答案 1 :(得分:0)
rst.Fields(Fields(0)) or rst.Fields(Array(0))