【问题标题】:Embed a generated Excel chart in Access在 Access 中嵌入生成的 Excel 图表
【发布时间】:2015-02-02 15:02:13
【问题描述】:

MS Access 2010的普通图表小部件的外观不是很吸引人。

是否有可能(以及如何?)在 Access 中嵌入相当吸引人的 Excel 图表并用查询中的数据(动态)填充它们?

PS:

因为我想根据用户输入更新图表,所以无法使用数据透视图。

【问题讨论】:

  • 你可以将一个未绑定的控件链接到一个 Excel 文件,但是你可能会发现你有一个问题,现在你有六个。
  • 顺便说一句,到底有多少用户输入?您是在谈论限制数据还是完全不同的表?
  • @Remou 用户可以编辑查询中的过滤器参数(选择框、文本字段、日期等)。所以用户可以限制同一张表的数据。
  • @Remou 我试过了,问题是如果我通过表单的RecordSource-property 更改查询,图表不再显示任何数据。
  • 我添加了一些注释。

标签: excel vba ms-access


【解决方案1】:

使用图表的一些注意事项

Sub OpenMyChart()
''You could do this part without code, but let use say you want VBA
sSQL = "SELECT Table1.AText AS ACategory, Table1.ANumber AS AData, " _
     & "Table1.ADate AS AFilter, Table1.ATime AS ASeries " _
     & "FROM Table1 WHERE Table1.ADate=#1/20/2012#"

''This is the query that my Chart form uses
CurrentDb.QueryDefs("Chart").SQL = sSQL

''You can use a Where statement for opening the form, too
DoCmd.OpenForm "Chart", acFormPivotChart, , "ACategory='Bob'"
End Sub

使用类似设置的其他两种方法和子表单。

/1。使用链接子字段和主字段

链接主字段设置为列表框控件的名称,链接子字段设置为图表的相关字段:

Link Master Field: List1;List2
Link Child Field: AFilter;ACategory

点击相关控件重绘图表。

/2。使用查询并强制重绘:

Private Sub List1_Click()
sSQL = "SELECT Table1.AText AS ACategory, Table1.ANumber AS AData, " _
     & "Table1.ADate AS AFilter, Table1.ATime AS ASeries " _
     & "FROM Table1 WHERE Table1.ADate=#" _
     & Format(Me.List1, "yyyy/mm/dd") & "#"1/13/2013#"

''This is the query that my Chart form uses
CurrentDb.QueryDefs("Chart").SQL = sSQL

''Chart is the name of the subform control, and confusingly, 
''the name of the embedded form.
Me.Chart.SourceObject = "Chart"
End Sub

【讨论】:

  • 这行得通。但不幸的是,它不适合我必须更改的程序。左侧有几个选项卡,右侧有一些过滤器输入。预期用途是使用过滤器集“实时刷新”选定的选项卡(一些统计信息、详细视图等)。这适用于所有情况,但在数据透视图中。
  • 用透视图测试。
  • 数据透视图刷新,但它确实破坏了所有字段集。设置RecordSource 并调用Requery 后,我必须以编程方式设置字段集(参见Help
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 2017-12-17
  • 1970-01-01
相关资源
最近更新 更多