如何在Access窗体中重新绘制Microsoft图表

时间:2011-03-17 21:59:30

标签: ms-access vba access-vba mschart ms-access-2003

我有一个子表单,它以形式设置Microsoft Chart 5.0对象的RowSource。

编辑:图表的行源类型是值列表。

但是,图形不会自行绘制,但任何通常会产生重绘的动作(在其上拖动另一个Access窗口,最小化它,丢失并重新获得焦点)确实会重新绘制它。换句话说,图表不会自动显示或更改。

如何在子窗体操作后强制重新绘制图表?

这些没有效果:

parent.Referesh
parent.Repaint
parent.TheChart.Refresh

不幸的是,这似乎并不存在:

parent.TheChart.Repaint

使用:Access 2003

3 个答案:

答案 0 :(得分:3)

MPelletier,问题不在于重新绘制图形。 您正在使用的子表单可能是从查询或表中检索数据,不是'?

因此,您必须更新“datasource”对象上的值,它提供子表单数据(无论是查询还是表)。然后,在mainform中重新查询图形对象。

我在MS-Acess 2000中做了一个非常简单的例子,效果很好:

包含三列的表(t01_fruits)(frt_id,frt_name,frt_qty); 基于t01表的子表单; 一个包含前一个子表单的mainform,一个基于表t01_fruits的饼图和一个按钮。在按钮的OnClick事件中,我只放了me.graph1.requery

当我更新子窗体中的水果数量时,在主窗体内,图形没有任何反应。单击按钮时,图表会正确更新。

我希望我能帮到你。

答案 1 :(得分:0)

在更新表格中的信息后,我在刷新图表时也遇到了同样的问题。我通过更新链接到更改数据的收件箱后重新排队图表来解决问题。

 Private Sub txtFinAgreeEnacDt_BeforeUpdate(Cancel As Integer)
    Me.graphCRMStatus.Requery
 end sub  


 Private Sub txtFinAgreeEnacDt_AfterUpdate()
     Me.Requery
 End Sub

我是表格持有图....

答案 2 :(得分:0)

我有类似这样的问题,主页包含子表单,包括2个图表 - 并且刷新它的解决方案是这样的:

me.subForm.Requery
me.subForm!Graph1.Requery

只有按此顺序执行命令时,才会正确更新图形。

我知道自问题被问到已经有一段时间了,但万一其他人有这样的问题。