Access 2013:尝试编写宏以根据查询结果更新表单字段

Access 2013:尝试编写宏以根据查询结果更新表单字段

我正在尝试创建一个宏,以根据查询结果更新表单中字段的值。

我对在 Access 中使用 vba 还很陌生,所以如果我问了一个基本问题,我深表歉意。

我应该提到,“测试”查询只返回一个结果。它的用法本质上与 VLookup 类似。

目前我的代码如下:

Private Sub UpdateBasic_Click()
  Dim bucket As String
  DoCmd.OpenQuery "test", acViewNormal, acReadOnly
  'this line is meant to record the result of the query into a variable. It is not working but I haven’t found the right command to get it to pick up the data yet.
  bucket = A1
  DoCmd.Close acQuery, "test", acSaveNo
  DoCmd.OpenForm "BasicData", acNormal, , , acFormEdit, acWindowNormal, "Global_ID = 'sdkfa'"
  'this line is meant to update the value of the field on the form.
  DoCmd.SetProperty testfield, acPropertyValue, bucket
End Sub

我根本没办法让 SetProperty 命令工作。无论我尝试给它一个变量(如 bucket)还是一个值(如 10),它总是告诉我数据类型不匹配。错误消息如下:

运行时错误“2948”:您输入的表达式对于其中一个参数来说是错误的数据类型。

任何帮助都将不胜感激。

答案1

DoCmd.SetProperty testfield, acPropertyValue, bucket

使用上述代码,您正在尝试设置property对于控件,不改变value。属性包括背景颜色、高度、宽度等。

如果要设置该值,您只需使用该me函数来引用表单上的控件。

me.testfield = bucket

testfield这告诉访问用变量保存的值来填充表单控件bucket

注意:您可能需要在该命令后添加一个命令me.refresh来让表单更新字段。

相关内容