Ms access 如何从DAO记录集中动态检索值?

Ms access 如何从DAO记录集中动态检索值?,ms-access,vba,ms-access-2007,Ms Access,Vba,Ms Access 2007,我有一个DAO记录集,例如 Set rst = CurrentDb.OpenRecordset("Select * from EMPLOYEES") 记录集有以下字段-姓名、年龄、薪水、职务 现在,我已经创建了一个带有特定字段列表的数组- Dim Fields As Variant Fields = Array("NAME", "SALARY") 并希望使用数组元素从记录集中动态检索字段 rst.MoveNext MsgBox(rst![Ar

我有一个DAO记录集,例如

    Set rst = CurrentDb.OpenRecordset("Select * from EMPLOYEES")
记录集有以下字段-姓名、年龄、薪水、职务

现在,我已经创建了一个带有特定字段列表的数组-

     Dim Fields As Variant
     Fields = Array("NAME", "SALARY")
并希望使用数组元素从记录集中动态检索字段

     rst.MoveNext

     MsgBox(rst![Array(0)])
我收到一个错误,声明“集合中找不到项”

我知道我缺少的是在感叹号(“!”)后面传递字段名变量的正确方法,但我不知道如何传递。有人能帮忙吗

rst!FieldName
该语法对于以下内容来说确实是语法糖:

rst.Fields("FieldName").Value
换句话说,通过编写
rst![Array(0)]
,您正在查找一个名为
[Array(0)]
的字段-感叹号后面的部分按字面意思表示

只需使用低糖语法即可:-)

请注意,
Array
不是数组变量的名称,因此
[Array(0)]
并不像您可能认为的那样引用
字段(0)
(并且
Array(0)
将创建一个新的值数组,其中包含值
0
)。如果名称
字段
容易混淆,请尝试以下操作:

Dim fieldList As Variant
fieldList = Array("NAME", "SALARY")

...

MsgBox rst.Fields(fieldList(0)).Value
该语法对于以下内容来说确实是语法糖:

rst.Fields("FieldName").Value
换句话说,通过编写
rst![Array(0)]
,您正在查找一个名为
[Array(0)]
的字段-感叹号后面的部分按字面意思表示

只需使用低糖语法即可:-)

请注意,
Array
不是数组变量的名称,因此
[Array(0)]
并不像您可能认为的那样引用
字段(0)
(并且
Array(0)
将创建一个新的值数组,其中包含值
0
)。如果名称
字段
容易混淆,请尝试以下操作:

Dim fieldList As Variant
fieldList = Array("NAME", "SALARY")

...

MsgBox rst.Fields(fieldList(0)).Value
尝试
rst.Fields(Fields(0)).value
和iirc您可以更好地使用序数:
rst.Fields(0).value
尝试
rst.Fields(Fields(0)).value
和iirc您可以更好地使用序数:
rst.Fields(0).value