我正在尝试创建一个宏来根据查询结果更新表单中字段的值。
我对在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': 您输入的表达式是其中一个参数的错误数据类型。
任何和所有帮助将不胜感激。
答案 0 :(得分:0)
如果您只是尝试将查询结果分配给表单中字段的值,我建议使用DLookup()函数。您可以像这样使用它(假设表单的控件是文本框):
Me.TextBox.Value = DLookup("FieldName", "QueryName")
更复杂的解决方案将涉及记录集等,但如果您正在寻找一个快速,简单的解决方案,这应该做得很好。希望有所帮助!