こちらの記事(レポートでカレンダー形式表示 複数予定に対応)を参考に、Access2019で月初めから月末までが縦一列で表示され、各日ごとに複数の予定をスラッシュで区切り表示するレポートを作りました。
元となる予定テーブルには日付、時間1、時間2、予定などのフィールドがあり、レポートに時間+予定が次の例のように表示されるようになっています。
例)
1日 10:00~11:00会議1/12:00~13:00会議2/
2日 9:30~10:00来客/15:00~15:30会議/
VBA)
詳細(非表示)に時間1、時間2、予定内容のテキストボックスを配置
フッターにtxt_日付、txt_予定のテキストボックスを配置
If Me.txt_日付け <> "" And Me.予定内容 <> "" Then
Me.txt_予定 = Me.txt_予定 & Format(Me.時間1, "h:nn") & "~" & Format(Me.時間2, "h:nn") & Me.予定内容 & "/"
この時に、時間1の早いものを先に、遅いものを後に配置したいのですが、レポートのレコードソースとなるクエリで時間でソートをかけても、時間順になりません。
どのようにすればよいでしょうか。ご教示ください。
(また、これだと必ず予定の末尾に/が入ってしまうのですが、本当は予定と予定の間だけにしたいと思っています。やり方の検討がつかないのでこれで妥協しています。もし簡単に解決する方法がありましたらこれについてもご教示いただければ幸いです。)
念の為に確認ですが、クエリを開いて時間でソートをかけると時間順になるけど、レポートのレコードソースに設定して、記事のように組んで横並びにするとソートなしのレコード順になる、という事でしょうか?うっかり、テーブルをレポートのレコードソースに設定していたりしませんか?
りんご様
ありがとうございます。コメントを受けて再確認したところ、レコードソースは間違いなくクエリになっています。
そして今気づいた点ですが、クエリを直接実行すると同日付の中で時間できちんとソートになっています。これがレポートになると時間がバラバラになってしまっています。
試していませんが、誤魔化せるかもしれません。
時間1のテキストボックスをフッターに移動すると成功したりしませんか?運が良ければたまたま希望通りになるかも。
根本的な対応は表示順みたいなフィールドが必要になりそうですが、そこまでするのもあまり好きではないんですよねぇ。
レポートの方で「グループ化、並べ替え」の設定をしているとクエリの並べ替えは無視されます。
現状、Numフィールドでグループ化されていますので、その下に「時間」フィールドでの並べ替えを追加してみてください。
上記の「並べ替えの追加」をクリックして「時間」フィールドを選択すればOKです。
りんご様、hatena様、
ありがとうございます。今日はできないので、後で双方のやり方で試してみてまた結果をご報告します。
教えていただいた方法を試したところ、hatena様の方法で解決できました。
お二人ともありがとうございました。