Microsoft Access 掲示板

レポートでガントチャート / 3

4 コメント
views
4 フォロー
3

サンプルを作成してみました。

テーブル名は、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

画像1

下記をクリックするとサンプルファイルをダウンロードできます。RptGanttChart_Year.zip

通報 ...