まずフォームから作ります。選出の際、年と月が必要になるのでそれを決定し、レポートを表示するってイメージで。
あっさりしてますがこんな感じでよいでしょう。決定ボタンのイベントはレポートが完成してから書きます。
次にレポートです。とりあえずレポート用のクエリを作ってやります。クエリのSQLビューをまんまコピーするとこんな感じです。
SELECT Employees.EmployeeNo, Employees.EmployeeName, Employees.ChoseDate
FROM Employees
WHERE (((Month([ChoseDate]))=[Forms]![MainForm]![MonthComboBox]));
月で抽出するため、WHERE区で先ほど作ったフォーム(MainForm)の月のコンボボックスを参照しています。
ではクエリを元にレポート作成します。
「ChoseDate」を週単位でグループ化しています。レポートビューにするとこんな感じ。
まぁ、サイズのことは気にしないで下さい。後はこれをフォームの決定ボタンで表示されるようにするだけです。
以下、決定ボタンのクリックイベントです。
'決定ボタンクリックイベント Private Sub CommitButton_Click() Dim targetYear As Integer targetYear = Me.YearCombobox.Value Dim targetMonth As Integer targetMonth = Me.MonthComboBox.Value Dim resultDay As Variant For Each resultDay In Work.GetSunday(targetYear, targetMonth) Work.ChoiceEmployee (CDate(resultDay)) Next DoCmd.OpenReport "ChoiseReport", acViewPreview End Sub
これで無事完成です。まぁ本当はもっといろんなケースを考えた方がよいでしょうけど(重複実行した場合とか)、とりあえずはこれにて第1回「自作自演で課題をやってみる」は終了です。