MS Access Tips/Sample and VBA and Blog customize etc...

カレンダーダイアログ日付入力関数の改良版

以前の記事 カレンダーコントロールを利用した日付入力汎用関数 でカレンダーダイアログを表示させて日付を入力する関数を紹介しましたが、それは画面の中央にカレンダーダイアログが表示されるので、入力テキストボックスが画面の端にあると離れた場所に表示されることになり、それが不満でした。

今回は、前回の関数を改良して、入力テキストボックスのすぐ隣に表示されるようにしました。さらに、コンボボックスのドロップダウンリストのように表示されるバージョンも追加しました。

CalenderDlg2.jpg

難易度:

以前の記事 カレンダーコントロールを利用した日付入力汎用関数 を読んでない方は先に読んでおいてください。

入力テキストボックスの隣に表示するには、その位置(スクリーン座標)を知る必要があります。これを知るには WinAPI を使うことになります。この方法は、このブログからもリンクさせていただいている 雅のプログラム研究所 で紹介されています。
帳票フォームの詳細にあるテキストコントロールの座標を知る方法
今回はこれを利用させていただきました。

標準モジュールのCallCalendar関数は前回のままです。F_Calendarフォームの「自動中央寄せ」プロパティは「いいえ」にします。フォームモジュールは下記のようになります。

これで、テキストボックスの右隣にカレンダーダイアログが表示されます。単票フォームでも帳票フォームでもサブフォームでもOKです。

ドロップダウンリスト風カレンダーダイアログ

F_Calendar をコピーして名前を F_CalendarDropDown としてください。フォームプロパティを下記のように設定します。

レコードセレクタ  いいえ 
サイズ自動調整    はい 
移動ボタン  いいえ 
自動中央寄せ  いいえ 
境界線スタイル  なし 
ポップアップ  はい 

F_CalendarDropDown のフォームモジュールは下記のように記述します。

「タイマ間隔」プロパティは 50 ぐらいに設定しておきます。

標準モジュールに下記の関数を作成します。

関数とテキストボックスやコマンドボタンとの関連づけは前回と同じです。

サンプルファイルが下記からダウンロードできます。
CalendarDlg2_07.zip (Access 2007-2010 形式 - 52kb)
CalendarDlg2.zip (Access 2002-2003 形式 - 53kb)
CalendarDlg2_2k.zip (Access 2000 形式 - 51kb)

拍手する

2 Comments

雅 says...""

おはようございます。雅です。

記事を紹介していただきましてありがとうございます。
ほかにもネタになるものがあれば使ってやってください(^o^)

# こんなの何に使うんだ的なネタを生かしていただきありがとうございますです

でわ。

2009.06.16 09:43 | URL | #llOsW3ec [edit]
hatena says..."雅さん、コメントありがとう。"

雅さんのところには、他にはない情報が多いので、参考になります。
特にAPI関係はすごいですね。

また利用させていただくことがあると思います。

では、では。

2009.06.17 08:01 | URL | #5uE6dEgY [edit]

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/116-a4b733bb
該当の記事は見つかりませんでした。