Ms access 如何从DAO记录集中动态检索值?
我有一个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
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