Email 在数据库启动时自动导出报表之前,如何在access VBA中刷新/重新查询报表

Email 在数据库启动时自动导出报表之前,如何在access VBA中刷新/重新查询报表,email,Email,我彻底地搜索并尝试了许多不同的解决方案,但我似乎无法让它发挥作用,即使它不应该那么困难 我有一个access数据库,每周一早上数据库打开时,它会自动通过电子邮件发送报告。问题是我无法让报告在图表中显示最新的数据。程序如下(以Report1为例) (用户打开数据库的.accdr版本) 打开时,当头部表单加载(表单加载事件)时,此代码运行: 因此,如果是星期一,代码还没有运行,报告1将打开,导出为PDF,作为附件添加,然后通过outlook邮寄 正如您所见,我目前尝试在调用代码发送pdf之前打开报告

我彻底地搜索并尝试了许多不同的解决方案,但我似乎无法让它发挥作用,即使它不应该那么困难

我有一个access数据库,每周一早上数据库打开时,它会自动通过电子邮件发送报告。问题是我无法让报告在图表中显示最新的数据。程序如下(以Report1为例)

(用户打开数据库的.accdr版本) 打开时,当头部表单加载(表单加载事件)时,此代码运行:

因此,如果是星期一,代码还没有运行,报告1将打开,导出为PDF,作为附件添加,然后通过outlook邮寄

正如您所见,我目前尝试在调用代码发送pdf之前打开报告,希望在导出之前刷新它。但不幸的是,它似乎不起作用,因为报告没有显示最新的数据

在导出和邮寄报告之前,我可以如何刷新/重新查询报告?非常感谢


Tim

一种解决方法是在满足条件(星期一,尚未运行)时,使用您想要的最新数据生成表,并以此为基础生成报告,然后在导出报告后删除包含数据的临时表。这还可以防止用户在你的查询/设置等方面撒尿

有点像

dim ssql as string

    sSql = "Select yourFields from yourTable INTO tmpTblRpt"
currentdb.execute(ssql)
'set the rpt to be based off tmptblRpt here
then set warnings off docmd.deleteObject actable, "tmpTblRpt" then warnings back on

谢谢我会尽快打给你,然后再打给你。
dim ssql as string

    sSql = "Select yourFields from yourTable INTO tmpTblRpt"
currentdb.execute(ssql)
'set the rpt to be based off tmptblRpt here
then set warnings off docmd.deleteObject actable, "tmpTblRpt" then warnings back on