【问题标题】:Access 2013:Trying to write macro to update form fields from a query resultAccess 2013:尝试编写宏以从查询结果更新表单字段
【发布时间】:2015-03-23 15:36:11
【问题描述】:

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

我对在 Access 中使用 vba 完全陌生,所以如果我问的是一个基本问题,我深表歉意。

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

目前我的代码是这样的:

私有子 UpdateBasic_Click()

将存储桶作为字符串变暗

DoCmd.OpenQuery“测试”、acViewNormal、acReadOnly

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

bucket = A1

DoCmd.Close acQuery, "test", acSaveNo

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

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

DoCmd.SetProperty 测试字段、acPropertyValue、存储桶

结束子

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

我们将不胜感激。

【问题讨论】:

标签: ms-access vba


【解决方案1】:

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

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

更复杂的解决方案将涉及记录集等,但如果您正在寻找一种快速、简单的解决方案,这应该没问题。希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 2023-03-21
    • 2017-09-17
    相关资源
    最近更新 更多