将AddNew用于记录集时,是否可以使用字段名称的变量?

时间:2014-02-19 15:31:36

标签: vba ms-access access-vba ms-access-2010 recordset

我正在使用DAO记录集来更新表格,因为遇到了问题here

当我知道我正在更新的字段的名称时,这可以正常工作,例如:

rs2.AddNew
rs2![ContactID] = rs.Fields(0).Value
rs2![Fee Protection Insurance] = "" & strValue & ""
rs2.Update

完美无缺。

但是,我正在尝试更新的字段并不总是具有相同的名称,因此我也尝试在此处使用变量,期望它评估并与上述代码等效:

rs2.AddNew
rs2![ContactID] = rs.Fields(0).Value
rs2!["strFieldName"] = "" & strValue & ""
rs2.Update

但它告诉我项目不在集合中,即使strFieldName设置为费用保护保险。

我尝试过各种方式,包括:

rs2![" & strFieldName & "] = "" & strValue & ""

rs2![strFieldName] = "" & strValue & ""

rs2!["" & strFieldName & ""] = "" & strValue & ""

rs2![cStr(strFieldName)] = "" & strValue & ""

没有一个工作。

我是以错误的方式解决这个问题,还是我尝试了一些不可能的事情?

2 个答案:

答案 0 :(得分:4)

尝试使用这个:

rs2.Fields(strFieldName) = "" & strValue & ""

答案 1 :(得分:-1)

非常简单的答案是的,您可以访问VARIABLE FIELD NAMES。 例如: 我有一个有多个按钮的表单......以下是如何命名和访问它们。

为表单上的每个Button命名:MyButton(1)到MyButton(X) 代码通过更改标题将数字放在每个按钮上。 stButton是Button名称

的字符串值

X = 10

对于Btn = 1到X

设置StButton = Me(" MyButton"&"("& Btn&")")

StButton.Caption = Btn

下一步Btn