我在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"
这会创建一个看起来像功能代码的字符串,但我该如何运行呢?
由于
答案 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是带有控件名称的数组。