在ms访问中单击更改图表查询

时间:2015-06-08 06:04:39

标签: vba ms-access access-vba

在我的ms访问项目中,我有一个表CustomerT和3列2012 2013 2014。我创建了一个名为TestForm的表单,其中包含一个名为MyGraph的图表和一个名为SelectYear的组合框。在我的图表行源中,我有一个名为qGraph

的查询
SELECT CustomerT.[2012], CustomerT.[2013], CustomerT.[2014] 
FROM CustomerT;

以下查询的示例数据

2012     2013  2014
 2.344   3.223  7.11
 5.23    23.27  21.23
 3.234   12.45  67.23
 4.235   7.234  53.56

当我打开表单时,我得到一个图表作为输出。

我想要做的是,如果我从组合框中选择2013,2014或2012年的一年,我想更改下面的查询

SELECT CustomerT.[2012]  FROM CustomerT;

CustomerT.[2012]将根据所选年份进行更改,这也会更改图表。我想使用vba代码生成器来做到这一点。我在想这样的事情

    Private Sub SelectYear_Click()

    'code with a query to change the graph


With Me.MyGraph.Axes(1) 
      .MaximumScale = 2015
      .MinimumScale = 2010
   End With 'X-Axis
    End Sub

如何在ms访问中实现此功能?

1 个答案:

答案 0 :(得分:0)

我不确定你想用这张表做什么,但是我认为每年只有一个列不是一个好的设计。

要回答您的问题,您可以在更新组合框后更改表单的RecordSource属性:

Private Sub SelectYear_AfterUpdate()

    Dim strRecordSource As String

    strRecordSource = "SELECT CustomerT.[" & Me.SelectYear & "]  FROM CustomerT;"

    Me.RecordSource = strRecordSource

End Sub

我没有测试,但我认为它应该可行。当您打开表单以设置包含所有列的默认RecordSource时,您也可以执行相同的操作:

strRecordSource = "SELECT * FROM CustomerT;"