日付入力でカレンダーを使う時の注意点 変更後イベント直後の問題点

MSACCESS_eyecatch
SBMJOB

Accessでの日付入力はシステムごとに若干違うことがありますよね?デートピッカーで統一できそうですが実はそうでもないんです。私が直面した問題点はデートピッカーで選択した日付がその直後だけイベントで取得できない!ということでした。その内容と解決方法をご紹介します。

目次

スポンサーリンク

現象

(Access 2009 での場合で記述してます。バージョンで挙動ちがうかも)

テキストボックスにデートピッカーを設置する

テキストボックスの書式を日付にするとビルドインのカレンダで日付を入力することができます。実務では便利なデートピッカーです。

テキストボックス横に小さなカレンダーが表示され、クリックするとこのようなデートピッカーが表示されます。

日付をデートピッカーから選択すると!問題発生!

変更後イベントで、デートピッカーからセットされた日付をVBAで取得しようとすると表示された日付が取得できません。

変更時イベントでセットされた日付を取得してもその値は変更されていません。

元々2020/11/07だった日付をデートピッカーで2020/11/14を選択してテキストボックスの変更後イベントにメッセージボックス表示ロジックを付けて表示させた結果が下の図になります。

簡単な解決策

  • デートピッカーで日付選択後に一度フォーカスを移動させる。
  • Refreshしてからテキストボックスの内容を取得する。

ワンクッション入れればいいのですが、入力時にワンテンポ遅れると気持ち悪いのでなんとかしたいものです。

より有効な解決策

標準のデートピッカーを仕様しないというのが解決策になります。自作のカレンダーを作ることになります。この実装はネットを検索するとロジックや画像の素材等もいっしょに解説しているサイトがありますので参考にした自作します。

デートピッカーの仕様確認

デートピッカーはテキストボックス等のコントロールに日付を渡しますが、日付貼り付け直後はtextプロパティーは変更するがvalueプロパティーは変更しない仕様だそうです。(昔から)

デートピッカーは日付選択直後は紐つくコントロールのtextプロパティーは変更するがvalueプロパティーは変更されない。

参考サイト

スポンサーリンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

システム開発SE・アプリ開発・デバッガー等々なんでもやる猫の下僕です。現在は凶暴猫にカタカタ動く手を狙われながらキーボードを打っています。かなりゆるい性格なのでコメントやメッセージお気軽に〜お仕事のご依頼もお気軽にぃ〜

スポンサーリンク

コメント

コメントする

CAPTCHA


目次