访问vba传递变量到代码中

时间:2014-07-15 18:54:17

标签: vba ms-access-2007

我在Access 07中试图将变量传递给一行代码。目的是创建一个字段名称数组,然后遍历数组,在每个字段上执行相同的操作。我已将其简化以避免阵列或循环出现任何潜在问题。 在我熟悉的任何其他语言中它都会非常简单,但我似乎无法用VB格式化它。

Me.FeildName.Locked = True

将是静态代码,我认为变量代码看起来像这样:

Dim Temp as String
Temp="FieldName"
Me.[Temp].Locked = True

但它一直给我一个错误,上面写着"无法找到字段' |'在你的表达式中提到",所以它没有读取变量的值 如何让它读取命令中的变量?

或者,我尝试将字符串连接成一行代码:

Dim CodeLine As String
Dim TestName As String
TestName = "FieldName"
CodeLine = "Me.[" & TestName & "].Locked = True"

这会创建一个看起来像功能代码的字符串,但我该如何运行呢?

由于

2 个答案:

答案 0 :(得分:2)

如果Me是表单,则需要

Temp = "FieldName"
Me.Controls(Temp).Locked = True

答案 1 :(得分:0)

Dick Kusleika的答案是要走的路,但为了完整起见,你也可以这样做:

For i = LBound(strControlNames) To UBound(strControlNames)
    CallByName Forms![MyFormName].Controls(strControlNames(i)), "Locked", VbLet, "True"
Next

strControlNames是带有控件名称的数组。