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

时间:2015-03-23 15:36:11

标签: vba access-vba

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

我对在Access中使用vba感到很陌生,所以如果我问一个基本问题我会道歉。

我应该提及,"测试"查询只返回一个结果。它基本上与VLookup类似地使用。

目前我的代码是:

私有子UpdateBasic_Click()

Dim bucket As String

DoCmd.OpenQuery" test",acViewNormal,acReadOnly

'此行用于将查询结果记录到变量中。它没有用,但我找不到正确的命令让它接收数据。

bucket = A1

DoCmd.Close acQuery," test",acSaveNo

DoCmd.OpenForm" BasicData",acNormal ,,, acFormEdit,acWindowNormal," Global_ID =' sdkfa'"

'此行用于更新表单上字段的值。

DoCmd.SetProperty testfield,acPropertyValue,bucket

结束次

我没有运气让SetProperty命令工作。它一直告诉我,我有一个数据类型不匹配,无论我是否尝试给它一个像桶这样的变量或类似10的值。错误信息如下: 运行时错误'2948': 您输入的表达式是其中一个参数的错误数据类型。

任何和所有帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您只是尝试将查询结果分配给表单中字段的值,我建议使用DLookup()函数。您可以像这样使用它(假设表单的控件是文本框):

Me.TextBox.Value = DLookup("FieldName", "QueryName")

更复杂的解决方案将涉及记录集等,但如果您正在寻找一个快速,简单的解决方案,这应该做得很好。希望有所帮助!