Microsoft Access 掲示板

ローテーションで項目を表示させる

6 コメント
views
4 フォロー

レポートを出すとき
レコードの日にちが変わるごとに
20個ほどある「本日の注意事項」というものをローテーションで表示させるにはどうしたらよいでしょうか?

「本日の注意事項」をマスタテーブルにして1から20まで順番に表示させていくようにしたいです
マスターテーブルを作らなくてもできるならなくてもよいです
一巡するとまた頭から、といった具合です

よしりん
作成: 2020/05/18 (月) 02:17:09
通報 ...
1

レポートのレコードソースのフィールド名を提示してください。
また、「グループ化と並べ替え」の設定はどうなってますか。

できれば、レコードソースのデータ例とレポート上にどのように表示させるのか。「本日の注意事項」はどこに表示させるのか。の詳細な説明をお願います。

例えば、「日にち」のグループヘッダーがあり、そこに「本日の注意事項」を表示させるのでしょうか。

2
よしりん 2020/05/19 (火) 17:31:21 8e098@2bcd5

おそくなりました

現在エクセルで手入力していて画像のようにしています
画像
例えば本日の注意事項マスタに3件あるときそれを順繰りで表示させたいです

3

注意事項のマスターテーブルは下記だとします。

名前 T_注意事項

注意事項ID注意事項
1注意事項1
2注意事項2
3注意事項3
4注意事項4
・・・

レポートのデザインビューで「グループ化、並べ替え」で「日付」フィールドでグループ化してグループヘッダーを表示させます。

グループヘッダーに、「日付」をテキストボックスとして配置します。
そのとなりにテキストボックスを2つ配置して下記のように設定します。

名前 連番
コントロールソース =1
集計実行 グループ全体
可視 いいえ

名前 注意事項
コントロールソース ==DLookUp("注意事項","T_注意事項","注意事項ID=" & ((([連番]-1) Mod 20)+1))

([連番]-1) Mod 20) の20の部分は注意事項の件数

詳細セクションに「従業員」フィールドを配置します。

デザインビューでのレイアウト例
画像1

日付グループヘッダーの「フォーマット時」のイベントプロシージャを下記のように記述します。

Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer)
    Me.MoveLayout = False
End Sub

以上です。

4
よしりん 2020/05/21 (木) 16:57:59 d4d49@2bcd5

詳しい解説ありがとうございました
とても参考になりました

5
hiroton 2020/05/22 (金) 08:31:31 8273c@f966d

最後のところ、VBAは使わずに
「日付グループヘッダー」
可視:いいえ
「日付」テキストボックスと「注意事項」テキストボックスは「詳細セクション」に配置
重複データ非表示:はい

でいいんでないかな。と

6
hatena 2020/05/22 (金) 10:09:24 修正 >> 5

はい、それでもいいと思います。
結果は同じですのて、仕様に合わせて選択すればいいでしょう。

今回の場合は、エクセルでの画像をみると日付の上に罫線があるので、日付ヘッダーは表示させて直線コントロールを配置するといいかなと思い、そちらを提案しました。