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

月単位でデータ入力する場合の日付入力の効率的なUIを考える

売上、予定などのデータを1か月単位でまとめて入力するという業務は結構あると思います。その時、日付(あるいは時刻も)を入力するのは面倒ですよね。また同じ日付を続けて入力するときもおなじものを繰り返し入力するのもなんか悔しいです。

この不満を解消するUIを検討してみましょう。

日付入力フォームUI

難易度:

どのようなUIがいいのか

Accessの最近のバージョンは日付項目にはカレンダーで日付選択できる機能が標準でついてきます。これも便利なんですが業務で大量のデータをキーボードから入力しているときにキーボードからマウスに持ち替えて入力するというは煩わしいし非効率的です。

そこで、下記の投稿でキーボードからの効率的な入力の設定を紹介しました。
定型入力で日付や時刻の入力を楽する - hatena chips
この定型入力を使う方法だと、2015/02/12[Enter] と入力するのを 20150212 と入力すればいいようにできます。

今回の要件は月単位ということなので、年月の部分は共通なのでそれを省略したいですね。

UIとしては、フォームヘッダーで年月を入力して、詳細では、日のみ2桁で入力できるようにすると2タイプですみます。
さらに同じ日付を入力することが多いということの対策としては、既定値として直前に入力した日にちが表示されるようにするといいでしょう。同じ日にちの場合は[Enter]または[Tab]で次の項目へ移動します。

日付入力フォーム「売上1」

年月も、当月を規定値として表示して、[前月][次月]ボタンを配置して月移動できるようにもしてあります。

仕様に基づいてフォームを設計

ウィザードで必要なフィールドを選択して表形式フォームを作成します。
フォームヘッダーにテキストボックス「年月」とコマンドボタン2個「前月」「次月」を配置します。

テキストボックスの更新後処理、コマンドボタンのクリック時に下記のイベントプロシージャを割り当てます。

setDefaultValueは日付の規定値を設定します。レコードがなければ当月の1日、あれば最終レコードの日付になります。
定型入力を設定して指定の年月に固定しています。
年月を変更したり、前月、次月ボタンをクリックすると指定の年月で抽出されます。
フィルターがユーザーによって解除されないようにフォームの「フィルターの使用」は「いいえ」にしておきます。

詳細セクションの日付テキストボックスの「自動タブ」を「はい」、「書式」を「yyyy/mm/dd」に設定します。
このテキストボックスにピッタリと重なるようにコマンドボタンを配置して「透明」を「はい」に設定します。

コマンドボタンのボタンクリック時、日付テキストボックスの更新後処理、フォーカス取得後 のイベントプロシージャを下記のようにします。

フォーカスを取得した時に日にち部分2けたを選択します。
更新後に規定値をいま入力した日付に変更します。
テキストボックスをマウスで直接クリックすると選択範囲が日にちいがいになるので、透明コマンドボタンを重ねて、ボタンクリック時で日付にフォーカス移動するようにしてます。

あとは、フォームを開く時に下記のイベントプロシージャを設定します。

「年月」テキストボックスに当月を代入してから、年月の更新後処理を呼び出しています。

上記はサンプルファイルの「商品売上1」になります。

改良してみる

上のサンプルでは日付の表示は、2015/02/05 という年月日表示ですが、年月はヘッダーで表示しているので、シンプルに日にちだけでもいいですね。

上のサンプルの「日付」テキストボックスの「書式」を「dd」、「タブストップ」を「いいえ」に変更します。
透明ボタンは不要なので削除します。

日付テキストボックスにピッタリ重なるようにテキストボックス「txt日付」を配置して「定型入力」を「00;0」、「自動タブ」を「はい」に設定します。
これを右クリックして[位置]-[最背面に移動]をクリックします。
コントロールソースは空白にしておいてください(非連結テキストボックス)。

「日付」と「txt日付」の各イベントプロシージャを下記のように設定します。

年月_AfterUpdate も下記に変更します。(サンプル1の定型入力設定部分を削除しただけ)

日付入力フォーム「売上2」

日付テキストボックスの背面に非連結テキストボックスを配置してます。
日付にはフォーカスが来ないようにして(タブストップをいいえ)、txt日付にフォーカスが来たとに、日付の日部分のみ代入します。背面に隠れていてもフォーカスが当たると前面に表示されます。ここで日を入力して更新後で、年月と結合して年月日して日付に代入します。

日付と時刻を入力するサンプル

勤怠管理のような日付と開始時刻、終了時刻を入力するサンプルもファイルに添付しました。

ファイル内の「F_出退勤」です。

上記と同様に年月はヘッダーで入力して詳細では日のみ入力、時刻入力は、定型入力で日付や時刻の入力を楽する で紹介した方法を組み合わせています。

例えば、通常は、

2015/02/05[Enter]08:30[Enter]15:30

と入力するところを、

0508301530

という入力で済みます。

日付時刻入力フォーム「F_出退勤」

コードや設定の詳細はサンプルファイルで確認してください。

サンプルファイルが下記からダウンロードできます。
FrmDateInput_07.zip (Access 2007-2010 形式 - 34kb)
FrmDateInput.zip (Access 2002-2003 形式 - 29kb)
FrmDateInput_2k.zip (Access 2000 形式 - 29kb)


拍手する

Leave a reply






Trackbacks

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