gpt4 book ai didi

vba - Access 2007 VBA DoCmd.SetParameter 替换?

转载 作者:行者123 更新时间:2023-12-04 23:51:16 29 4
gpt4 key购买 nike

我继承了一个 Access 数据库,里面有很多表、表单和查询。然而,我是一名 PHP 程序员,VBA 对我来说很陌生。我被要求进行一些更改,在几天的过程中我能够开始工作(在旧的随机 SO 帖子的帮助下)。

将数据库传回给用户后,在我的计算机上运行的代码在他们的计算机上不起作用。似乎我有 Access 2010,他们有 2007。据我所知,Access 2007 中的 VBA 中不存在 DoCmd.SetParameter 函数。

这是代码的一个片段:

DoCmd.SetParameter "ReportYear", Year.Value
DoCmd.SetParameter "ReportMonth", Month.Value
DoCmd.OpenQuery "doFillData"

doFillData 是 Access 中的一个查询,它会自动插入到另一个表中,在运行之前需要 2 个参数(年和月)。

显而易见的答案是,让他们升级到 2010 年,但我没有那个权力。我假设我能够在 2007 年创建条件代码来做一些不同的事情,但我找不到类似的函数来使用。谁有想法?

最佳答案

而不是使用 DoCmd.OpenQuery ,您要操作 querydef 对象的命名参数,然后执行它。您可以使用执行选项,例如 acFailOnError以这种方式执行时(不适用于 OpenQuery),您可以检测受影响的记录数。

Dim db As DAO.Database
Dim qdf As DAO.QueryDef

Set db = CurrentDb
Set qdf = db.QueryDefs("doFillData")
qdf.Parameter("ReportYear") = Year.Value
qdf.Parameter("ReportMonth") = Month.Value
qdf.Execute

MsgBox qdf.RecordsAffected & " records were affected."

关于vba - Access 2007 VBA DoCmd.SetParameter 替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21538408/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com