【发布时间】:2021-02-20 22:43:51
【问题描述】:
我在 MS Access 2007 数据库的表单上有一个 MS Graph XY 散点图。打开表格后,图表应立即显示,但图表有时仅显示图形。似乎是随机的。底层数据的可视化无法显示的原因是图表区域是空的,甚至没有显示绘图区域和其中的网格线。图表底层的查询在两列中有数据。
图表对象的工具栏显示图表对象知道这一点,因为 in columns 图标被突出显示。即便如此,图表也没有显示。我可以通过右键单击图表对象,然后选择 edit,然后单击工具栏中的 in rows 图标,然后单击 in columns 图标。
MS Access 图表对象正确地告诉 MS Graph 图表对象数据在两列中。然而,MS Graph 有时需要使用图表的工具栏明确告知这一点。
VBA 可以通过执行告诉 MS Graph 图表对象数据在列中的例程来解决这个问题。
关于 On Open 事件:
Private Sub Form_Open(Cancel As Integer)
Me.MyGraph.Object.Application.PlotBy = 1
Me.MyGraph.Object.Application.PlotBy = 2
End Sub
评论:
PlotBy = 1 表示数据在行中。
PlotBy = 2 表示数据在列中。
这行得通。如果可以在不影响结果的情况下消除第一行代码,我会进一步尝试。
编辑(2020 年 11 月 28 日):
删除第一行代码后,有时图表会保持空白。所以有必要使用两行代码告诉MS Graph该系列在列中。这是有道理的,因为在不运行代码的情况下,MS Graph 界面已经表明它知道该系列在列中,但即便如此它并不总是根据该知识采取行动,这就是为什么图表可能在第一个保持空白的原因地点。
只是告诉 MS Graph 该系列在列中不会唤醒 MS Graph。所以你必须首先破坏 MS Graph 关于系列在哪里的知识(通过错误地告诉它它们在行中),然后重新告诉它们真正在哪里。
【问题讨论】:
-
您需要添加一个带有不记名访问令牌(docs.microsoft.com/en-us/graph/auth/…)和身份文档(docs.microsoft.com/en-us/graph/auth/…)的授权标头。
-
我注意到 Office 365 解决方案,而不是旧版 Office 工具。但我也可能是错的。据说你可以看到我遇到的相关胎面 - (stackoverflow.com/questions/59660322/…)。让我们知道进展如何。
-
嗨,开发者。 MS Graph 已经完全集成在 MS Access 2007 中。所以我猜 MS Access 和 MS Graph 之间的接口已经完全由 MS Access 的开发人员开发了。我的解决方案只是为了修复这个界面中的一个小错误。使用包含的修复程序运行此数据库几个月后,我可以告诉您问题已完全消除。
-
很高兴听到!
标签: vba charts microsoft-graph-api ms-access-2007