gpt4 book ai didi

ms-access - VBA使用基于查询的参数运行Access Report

转载 作者:行者123 更新时间:2023-12-04 13:45:06 25 4
gpt4 key购买 nike

我想使用VBA脚本自动化一些访问报告。但是,当我想使用DoCmd.OpenReport运行它们时,我遇到了一个问题,即每个报表都有一些弹出窗口,其中包含一些来自基础查询的参数。

这是参数在查询中的样子:

PARAMETERS [Time] Text ( 255 );


我在Google上搜索了很多并尝试:

 DoCmd.OpenReport "B_My_Report", acViewPreview, , "[Time]= 423"


但这是行不通的。弹出窗口仍然出现,当我什么也不输入时,查询将失败,因为Time参数为空。

有没有一种方法可以用参数值调用报表。我读了很多关于完全删除该参数并在 where中使用 OpenReport条件的建议。但是我无法更改这些查询,因为它们不是我制作和维护的。有时候我只需要运行它们。因此,我很想拥有一种无需触摸报表或查询的解决方案。

最佳答案

如果您的Access版本>> = 2010,请考虑DoCmd.SetParameter Method

此查询是我的报告的记录源:

PARAMETERS which_id Long;
SELECT rmy.id, rmy.reportDate, rmy.gainOrLoss
FROM record_matYields AS rmy
WHERE rmy.id=[which_id] OR [which_id] Is Null;


因此,我可以为参数分配一个值并打开仅显示匹配记录的报告( id是主键):



DoCmd.SetParameter "which_id", 4
DoCmd.OpenReport "rptFoo",acViewReport


或者,由于查询的 OR [which_id] Is Null子句中的 WHERE条件,如果我希望包括所有记录而不管它们的 id值如何,我可以在打开报表之前将Null分配给参数:

DoCmd.SetParameter "which_id", Null

关于ms-access - VBA使用基于查询的参数运行Access Report,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38267851/

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