图表行源未使用Requery更新

时间:2014-08-07 10:31:20

标签: ms-access access-vba ms-access-2007 ms-access-2010 ms-access-2013

我的访问报告中有一个图表。它的行源设置为Query对象,因此我可以在运行时更改图表数据。以下是我更新图表数据的方法。

CurrentDb.QueryDefs("source_query").SQL = "my_query"
Me.my_chart.Requery

这两行是在我的报告的公开活动中。

但是,我的图表在Requery之后没有显示任何内容。那就是我让代码自己运行。如果我在Requery语句中放置一个断点并暂停,我可以看到我的图表最后更新。

为什么会这样?我怎样才能让Requery独立工作?

我正在使用Accessing 2013来存储此数据库。

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以选择以编程方式插入一个小暂停,但我建议您将行源或图表更改为sql字符串。

另一种可能性是,在更改查询中的sql之后,将图表的rowsource重新分配给新查询,从而强制图表重新查询最新的sql语句。

答案 1 :(得分:0)

经过几天的搜索,我终于想通了。在这里,我发布我的解决方案,并希望它能帮助遇到同样问题的其他人。

Requery不会更新我的图表,因为Access有时会异步运行代码。

我的“source_query”基于一个只在运行时获取数据的表。但是,我将数据插入此表的方式是:

CurrentDb.Execute "some insert query"

此插入查询需要相当长的时间才能运行,Access在完成之前会执行以下操作。

CurrentDb.QueryDefs("source_query").SQL = "my_query"
Me.my_chart.Requery

结果,我的“source_query”一无所获,因为我的桌子还没准备好。

那么,解决方案呢?更改运行插入查询的方式,如下所示

DoCmd.RunSQL "some insert query"

这会强制Access在进入下一行代码之前完成插入查询。