在Access中嵌入生成的Excel图表

在Access中嵌入生成的Excel图表,excel,vba,ms-access,Excel,Vba,Ms Access,MS Access 2010的普通图表小部件的外观不是很吸引人 是否有可能(以及如何)在Access中嵌入极具吸引力的Excel图表,并用查询中的数据(动态)填充它们 附言: 因为我想根据用户输入更新图表,所以无法使用透视图。关于使用图表的一些注意事项 Sub OpenMyChart() ''You could do this part without code, but let use say you want VBA sSQL = "SELECT Table1.AText AS ACateg

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

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

附言:


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

关于使用图表的一些注意事项

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
另外两种方法使用类似的子窗体设置

/一,。使用链接子字段和主字段

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

Link Master Field: List1;List2
Link Child Field: AFilter;ACategory
单击相关控件可重新绘制图表

/二,。使用查询并强制重画:

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

您可以将一个未绑定的控件链接到Excel文件,但您可能会发现,在您遇到一个问题的地方,您现在有六个。顺便问一下,到底有多少用户输入?您是说限制数据还是完全不同的表?@Remou用户可以编辑查询中的筛选参数(选择框、文本字段、日期等)。因此,用户可以限制同一表的数据。@Remou我尝试过这样做,问题是如果我通过表单的
RecordSource
-属性更改查询,图表将不再显示任何数据。我添加了一些注释。这将起作用。但不幸的是,它不适合我必须改变的计划。左侧有几个选项卡,右侧有一些过滤器输入。预期用途是使用过滤器集“实时刷新”所选选项卡(一些统计信息、详细信息视图等)。这在除透视图外的所有情况下都能很好地工作。它使用透视图进行测试。透视图会刷新,但会销毁所有字段集。设置
RecordSource
并调用
Requery
后,我必须以编程方式设置字段集(参见此)