Microsoft Access 掲示板

日付の並べ替えについて

12 コメント
views
4 フォロー

Accessで日付をグループ化してと銀行ごと金額合計を出しています。 クエリを実行すると日付が2024年3月11日から始まってしまい1日から並びません。レポートを出す際に1日から並ぶようにしたいのですが、
どのようにすればいいでしょうか。
教えていただければと存じます。宜しくお願いいたいます。

wan
作成: 2024/04/09 (火) 17:14:54
最終更新: 2024/04/09 (火) 17:22:06
通報 ...
1

日付フィールドのデータ型は日付/時刻型になってますか。
日付フィールドで並び替えを設定していますか。

2

ご回答ありがとうございます。
データ型を「日付/時刻型」に設定し、書式をyyyy年mm月dd日としています。
日付フィールドでの並び替えはクエリで「昇順」に設定していますが、1日から並びませんでした。
設定方法など間違っているでしょうか。 宜しくお願いいたします。

3
hiroton 2024/04/10 (水) 08:42:28 0799a@f966d

そのクエリを直接表示した場合は指定の並び順になっていますか?
また、レポートでの並びは、レポート上で並び順の指定が必要です

レポートの既定の並べ替え順序を定義する

4

画像1
画像2

クエリでの指定とその結果になります。
レポートで並び替えたい場合は、レポートでも日付のところで昇順の指定をしないといけないという事でしょうか。

5
hiroton 2024/04/10 (水) 09:12:19 0799a@f966d

「レポートでも」というよりは「レポートの指定のみ」が反映されます。レポート上で並び順を指定しなかった場合の並びは不定です

クエリ上での確認は、単にレポート上で並び順を指定した場合に、求めた並び順になるかどうかの確認です
画像を見る限りそうではないようですね

データが正しく日付型データで保存されているのであれば日付順に正しく並びます

データ型を「日付/時刻型」に設定し、書式をyyyy年mm月dd日としています。

型を指定しているだけで、正しいデータが保存されていないか、書式の設定の仕方が間違っています

特に「書式をyyyy年mm月dd日」と設定しているのにも関わらず「2024年3月1日」と表示されているのはおかしいですね。「mm」や「dd」としているので、0を詰めて2桁で表示(2024年03月01日)されていないとおかしいです
書式が適用できず、元のデータをそのまま表示しているのでしょう

大元のテーブルのフィールドは「日付/時刻型」になっていますか?また、そのフィールドの書式を変更する(書式なしにする)と、きちんと望んだ日付のデータが保存されていますか?

6

画像1
画像1
テーブルのデザインです。 テーブルだと2024年03月01日となっています。

もともとはExcelデータをインポートしてテーブルにしていて、「入金日」を列に加えて
「日付」データを参照して入力をして使っています。
(「日付」を使いたいのですが、データ型を「日付/時刻型」にするとデータを消えてしまったので、
新たに列を作りました。)
書式の指定は必要ないのでしょうか。

7

新しくクエリを作り直してみたのですが、日付順に並びました。
色々と教えていただき、ありがとうございました。

8

おそらくクエリをウィザードで作成したのですね。
そのときに、「日付をグループ化する単位を選択してください。」で「日」を選択したのでしょう。
そうすると、日付は下記のような演算フィールドになります。

開始日 を日でグループ化: Format$([Mtbl_所属歴].[開始日],'日付 (L)')

Format関数で標準の日付書式にしてますので、テーブルでの書式は無視されますね。
Format関数の返り値は文字列ですので、文字列としての並び順になりますのでそのような結果になります。

このフィールドの式を削除して、「開始日」にすれば日付順になるでしょう。


私としては、レポートの並び順は、レポートの方で「並べ替え」プロパティ、「グループ化と並べ替え」を設定してなければ、レコードソースの並び順になると認識してました。

優先度の高い順
「グループ化と並べ替え」
「並べ替え」プロパティ
レコードソースの並び順
(クエリの並び替え設定、テーブルのインデックス設定)

しかし、レポートの方で「並べ替え」なり、「グループ化と並べ替え」で並び順を指定した方が確実ですね。

11
hiroton 2024/04/10 (水) 10:29:59 0799a@f966d >> 8

そんな機能あるんですねぇ。そして、運用を考えたら今回の問題が起こるような使い難い機能だと・・・

12

「ウィザード」機能は、初心者にとっては、質問に答えていくだけで、それなりの結果を得られるので、便利なんですが、設定の意味を理解しなくてもできるので、スキルアップの障害になりかねないですね。
また、今回のように想定外のことが起こったり、一部修正しようとしたときに、何をしたらよいかわからないということになります。

ある程度スキルがあるのなら、とりあえず「ウィザード」でひな形をさっと作成して、あとはお好みで修正しながら仕上げるという使い方ができますけどね。

9
hiroton 2024/04/10 (水) 09:48:29 0799a@f966d

書式は最終的な表示の仕方を決めるものです。最終的な表示場所(今回の場合はレポート)で設定すれば十分です
ただ、同じデータをフォームで表示したい・レポートで表示したいなど複数用いることもあります。その場合、デフォルトの書式としてレコードソースの書式を用いるので、テーブルで書式を設定しておけば、基本的にその書式で表示する(後から変更もできる)という使い方もできます

既に指摘していますが、「書式をyyyy年mm月dd日として」いて、「『2024年3月1日』と表示されているのはおかしい」です。どこかで書式を使った何かが間違っています

画像から見える限りでは、一枚目の画像のクエリの最初のフィールド「入金日を日付でグルー」が怪しいです


ここまで記述してたら回答付いたので以下略

10

クエリの設定がお書きいただいた様に「日でグループ化: Format$…」となっていました。

最終的は表示場所の設定でOKなんですね。それぞれ指定をしていました。とても勉強になりました。
詳しく説明いただきありがとうございました。