hatena
hatena
2021/04/26 (月) 13:50:24
サンプルを作成してみました。
テーブル名は、T_プロジェクトに変更しました(T_登録では内容がわからないので)。
フォーム上にコンボボックスとコマンドボタンを配置して、コンボボックスで年を選択します。
コマンドボタンをクリックするとレポートのプレビューが開きます。
フォーム名 フォーム1
コンボボックス名 cbYear
コマンドボタンクリック時
Private Sub コマンド0_Click()
DoCmd.OpenReport "R_プロジェクト", acViewPreview, , _
"開始日<=#" & Me.cbYear & "/12/31# AND 終了日>=#" & Me.cbYear & "/01/01#"
End Sub
レポート名 R_プロジェクト
レポートのレコードソース T_プロジェクト
ページ設定 用紙 A4 横
ページヘッダーにテキストボックスを配置する。
名前 txt年
コントロールソース =[Forms]![フォーム1]![cbYear]
レポートモジュール
Option Compare Database
Option Explicit
Const L = 567 * 4 'グラフの左位置 5cm
Const Rng = 567 * 0.06 '1日の幅 0.06cm
Dim FDate As Date
Private Sub Report_Load()
FDate = DateSerial(Me.txt年, 1, 1)
End Sub
Private Sub ページヘッダーセクション_Print(Cancel As Integer, PrintCount As Integer)
'月ラベル
Dim m As Long, d As Long
For m = 1 To 12
d = DateDiff("d", FDate, DateSerial(Me.txt年, m, 1))
Me.CurrentY = Me.txt年.Top
Me.CurrentX = L + d * Rng
Me.Print m & "月"
Next
End Sub
Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
Me.DrawStyle = 0
Me.ForeColor = RGB(150, 150, 150)
'罫線
Dim m As Long, d As Long
For m = 1 To 13
d = DateDiff("d", FDate, DateSerial(Me.txt年, m, 1))
Me.Line (L + d * Rng, 0)-(L + d * Rng, 1000)
Next
Me.DrawWidth = 1
Me.DrawStyle = 6
Me.FillColor = RGB(90, 150, 200)
Me.FillStyle = 0
Me.Line (L + DateDiff("d", FDate, Me.開始日) * Rng, 50)-(L + DateDiff("d", FDate, Me.終了日) * Rng, 330), 0, B
End Sub
下記をクリックするとサンプルファイルをダウンロードできます。RptGanttChart_Year.zip
通報 ...