月別グラフの作成-データのない日も表示する

テーブルの準備
下のような2個のテーブルを用意しました。
「Tサンプル」は生データが入ったテーブルです。
「WTサンプル」はグラフに表示するデータを「Tサンプル」から取り込むためのテーブルです。

コードの記述
標準モジュールに下記コードを記述します。
Public intYear As Integer
Public intMonth As Integer
Public Sub SetLastDay(ByVal Y As Integer, ByVal M As Integer)
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE FROM WTサンプル"
DoCmd.RunSQL "INSERT INTO WTサンプル SELECT 日付,数量 FROM Qサンプル"
DoCmd.SetWarnings True
Dim i As Integer
Dim LastDay As Integer
LastDay = Day(DateSerial(Y, M + 1, 1) - 1)
Dim w_rs As Recordset
Set w_rs = CurrentDb.OpenRecordset("WTサンプル", dbOpenDynaset)
If w_rs.RecordCount <> 0 Then
For i = Day(DMin("日付", "WTサンプル")) - 1 To 1 Step -1
w_rs.AddNew
w_rs![日付] = DateSerial(Y, M, i)
w_rs![数量] = 0
w_rs.Update
Next
For i = Day(DMax("日付", "WTサンプル")) + 1 To LastDay
w_rs.AddNew
w_rs![日付] = DateSerial(Y, M, i)
w_rs![数量] = 0
w_rs.Update
Next
End If
w_rs.Close
Set w_rs = Nothing
End Sub
Public Function GetYear() As Integer
GetYear = intYear
End Function
Public Function GetMonth() As Integer
GetMonth = intMonth
End Function
Public Sub SetComboBoxYear(ByVal fm As Form, ByVal strName As String)
Dim i As Integer
Dim cb As ComboBox
Set cb = fm.Controls(strName)
For i = cb.ListCount - 1 To 0 Step -1
cb.RemoveItem i
Next
For i = Year(Date) To Year(Date) - 3 Step -1
cb.AddItem i
Next
End Sub
Public Sub SetComboBoxMonth(ByVal fm As Form, ByVal strName As String)
Dim i As Integer
Dim cb As ComboBox
Set cb = fm.Controls(strName)
For i = cb.ListCount - 1 To 0 Step -1
cb.RemoveItem i
Next
For i = 1 To 12
cb.AddItem i
Next
End Sub
フォームの読み込み時イベントプロシージャに下記コードを記述します。
Private Sub Form_Load()
Call SetComboBoxYear(Me, "cboYear")
Call SetComboBoxMonth(Me, "cboMonth")
cboYear = Year(Date)
cboMonth = Month(Date)
btnUpdate_Click
End Sub
ボタンのクリック時イベントプロシージャに下記コードを記述します。
Private Sub btnUpdate_Click()
intYear = Nz(cboYear)
intMonth = Nz(cboMonth)
Call SetLastDay(intYear, intMonth)
Me.chart.Requery
End Sub
選択クエリの作成
下のような選択クエリを作成します。

グラフオプションの設定
フォームのデザインビューでグラフをダブルクリックするとグラフの編集画面が現れます。
その画面のグラフを右クリックし、「グラフのオプション」を選択します。
「軸」タブの「X/項目軸」で「時系列」を選択するとデータがない日もグラフ表示されます。「項目」を選択するとデータのない日は表示されません。

使用方法
「年」と「月」を選択して「更新」ボタンをクリックするとグラフが表示されます。
