2014-02-14 35 views
0

第一次張貼海報和新的MS ACCESS。我正在使用MS ACCESS 2002-2003數據庫格式。 我有一個Mainform,我有一個選項卡式控件。在其中一個選項卡中,我有一個子表單,其中放置了另一個選項卡式控件。在其中一個選項卡中,我有一個包含類別列表的組合框,我試圖使用VBA將該值傳遞給MS Chart控件。只要沒有WHERE子句,圖表就會更新(它將顯示所有類別)。如果我從WHERE子句中刪除該變量並在其中鍵入VALUE,它仍然不起作用。當我運行Debug.Print strSQLPIE。 strSQLPIE值正確顯示了SQL語句和WHERE子句。但是,Chart始終顯示爲空白。如果我複製該SQL語句並將其放入一個新的查詢,查詢運行良好。MS圖表控件在行源包含WHERE子句時顯示爲空白

我已將問題網絡化到圖表控件的ROWSOURCE屬性中的SQL語句的WHERE子句。我錯過了什麼?

下面是代碼:

Dim DB As Database 
Dim rst As Recordset 
Dim strSQLSB As String ' subform datasheet sql 
Dim strSQLPIE As String ' chart control sql 
Dim SelCatStr As String ' combobox for categories 
Dim SelYrStr As String ' not being used for now 
Dim SelYrMtStr As String ' not being used for now 
SelCatStr = Me.PIEChart.Value ' combobox selected value 
'SelYrStr = Me.SelectYear.Value ' not being used for now 
'SelYrMtStr = Me.SelectYearMonth.Value ' not being used for now 

strSQLSB = "SELECT UNIONMASTER.ByMonth, UNIONMASTER.Category, UNIONMASTER.Category1, UNIONMASTER.AdjustedAmount " & _ 
"FROM UNIONMASTER " & _ 
"WHERE UNIONMASTER.Category1= '" & SelCatStr & "';" THIS UPDATES THE DATASHEET IN ANOTHER SUBFORM IN THE SAME TAB CORRECTLY ON CHANGE OF COMBOBOX. 

strSQLPIE = "SELECT UNIONMASTER.Category1, Sum(UNIONMASTER.AdjustedAmount) AS TotalSpent " & _ 
"FROM UNIONMASTER " & _ 
"WHERE UNIONMASTER.Category1= '" & Me.PIEChart.Value & "';" 

我試圖在where子句中使用SelCatStr和Me.PIEChart.Value,它仍然下來不行。我甚至嘗試輸入一個值,但它仍然不起作用。調試窗口正確顯示SQL和正確的where子句,但只要WHERE子句存在,圖表就顯示爲空白。

Me.PIESubform.Form.RecordSource = strSQLSB 
Me.[PIESubform].Form.Requery 

Debug.Print strSQLPIE 
Me.[CatChart].RowSource = strSQLPIE 
Me.[CatChart].Requery 

我認爲這個問題與CHART的rowsource設置中的WHERE子句有關。正如我所說,當我刪除where子句時,圖表正確地顯示所有類別,當我堅持WHERE子句,用VALUE或變量時,它顯示空白。

圖表作品,如果我用這個:

strSQLPIE = "SELECT UNIONMASTER.Category1, Sum(UNIONMASTER.AdjustedAmount) AS TotalSpent " & _ 
"FROM UNIONMASTER " & _ 
"GROUP BY UNIONMASTER.Category1 ;" 

Me.CatChart.RowSource = strSQLPIE 
Me.CatChart.Requery 

任何想法?

回答

1

您可能在查詢中缺少'GROUP BY'子句。你的查詢應該是這樣的。

strSQLPIE = "SELECT UNIONMASTER.Category1, " &_ 
    "Sum(UNIONMASTER.AdjustedAmount) AS TotalSpent " & _ 
    "FROM UNIONMASTER " & _ 
    "WHERE UNIONMASTER.Category1= '" & Me.PIEChart.Value & "';" &_ 
    "GROUP BY UNIONMASTER.Category1 ;"