ココに注意
日付選択カレンダー表示でこんなに悩むとは思わなかった!
テーブル設計
テーブル作成段階では、何も悩むことなく、フィールド名を「日付」にして、データ型を「日付/時刻型」にしました。
何も問題無いはずです!
そのテーブルをフォームにして選択してみると、カレンダーが表示されないのです。
何で?
ネット検索して対応してもダメ
ネット検索して対応策を調べてみると、最初にヒットするのは、
さらに詳しく
- データ型が、「日付/時刻型」ではない!
- 日付選択カレンダーの表示が「日付」でない!
というのが出てきます。
なんど調べてみても間違いはありません。
仕方なく、Copilotにて、AI検索してみると、下記の様な回答がでました。
考えられる原因と対策
(1)Accessのバージョンを確認
・一部のバージョンでは「ShowDatePicker」プロパティの選択肢が「日付」と「なし」のみになっていることがあります。
・最新のAccessの仕様を確認するには、Microsoftの公式ドキュメントをチェックしてみてください。
(2) テキストボックスのデータ型を確認
・「ShowDatePicker」は日付/時刻型のフィールドにのみ適用されます。
・テーブルの設計ビューで、対象のフィールドが「日付/時刻」になっているか確認してください。
(3)Accessの設定をリセット
・Accessのオプションで「既定のコントロールの動作」を変更すると、設定が反映される場合があります。
・「ファイル」→「オプション」→「オブジェクトデザイン」から設定を確認してみてください。
(4)別の方法でカレンダーを表示
・VBAを使ってカレンダーを表示する方法もあります。
・例えば、テキストボックスのクリックイベントでカレンダーを開くコードを追加することができます。
(1)と(2)は確認しても改善しませんでした。(3)に関しては、オブジェクトデザイナーって場所までいきましたが、何をするのか不明です。
(4)に関しては、やればできますが、カレンダー表示させるだけなのにこんなに手間が必要ですか!?ってことでやっていません。
原因は、こんな事だったなんて・・・
原因は、
ココに注意
定型入力を設定していた事!
でした。
なんで、定型入力を設定するとカレンダー入力ができなくなるのかは調べていませんが、テーブルから定型入力の設定を消すとカレンダーが出現するようになりました。
ただ、ここで注意です!
自分の環境だけかもしれませんが、定型入力の設定が消せません。なんで消せないのか不明ですが、やった事は、フィールド毎消して再設定したり、Accessを再起動してみたら直りました。
よくわかりません。
そして、第二の注意ポイントは、テーブルの定型入力を消しただけでは、フォームのカレンダー表示は出現しません。
自分は、フォームの日付フィールドを消してから、新たに追加して日付フィールドを追加しました。
その様な対応して、やっと日付カレンダーが表示されて選択入力をすることが可能となりました。
日付選択カレンダー入力する場合は、定型入力項目には御注意くださいませ!