• ベストアンサー

アクセス コンボボックス 月を順番に表示するには?

日付型のフィールドにたくさんの日付が入っていて、 フォームのコンボボックスで、 Format([Tテーブル]![日付],"m\月") としたら、 画像のように 10月 11月 12月 1月 という順番になってしまいます。 1月 2月 3月 とするにはどうすればいいでしょう? 値リストで12個設定するしかないですか? 並べ替えは昇順にしてもしなくても同じです。 「固定の値」は、はいにしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

コンボボックスの「値集合タイプ」は「テーブル/クエリ」 とし、その値集合ソースを、 SELECT Format([Tテーブル]![日付],"m\月") AS 月 FROM T日付 GROUP BY Format([Tテーブル]![日付],"m\月"), CLng(Format([Tテーブル]![日付],"m")) ORDER BY CLng(Format([Tテーブル]![日付],"m")); のようにすればどうでしょうか。 CLng(Format([Tテーブル]![日付],"m"))で、Clngの中を数値に変換 してその並びを昇順にした結果を利用して月の並びを強制しよう というものです。 ところで、 >「固定の値」は、はいにしています。 は「固有の値」では? 回答の場合はとくに「はい」にはしていなくて、 規定値の「いいえ」のままです。 >値リストで12個設定するしかないですか? 普通はそうでしょうね。 テキストで、 "1月","2月","3月",・・・・・・・・・・ としてコピーして張り付けるだけです。

IFIAKIDHUAWX
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.3

> 値リストで12個設定するしかないですか? データの存在する月のみを表示したいということなら SELECT Month([日付]) & "月" AS 月 FROM Tテーブル GROUP BY Month([日付]) & "月" ORDER BY First(Month([日付])) 「固有の値」は、「いいえ」にしてください。

IFIAKIDHUAWX
質問者

お礼

ありがとうございました。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

No1の最後のあたりで、 >"1月","2月","3月",・・・・・・・・・ ではなく、 "1月";"2月";"3月"・・・・・ のように区切りは「;」でした。訂正です。

IFIAKIDHUAWX
質問者

お礼

ありがとうございました。

関連するQ&A