#12 | 受取金額欄の追加とフォーカスの移動 | ||
これはパソコンレジならではの機能追加です。売上金額に対して顧客が実際に出した金額を入力するための欄を追加します。 まず、次のような手順で、受取金額入力用のテキストボックスをフォームに追加します。
このテキストボックスに関しては、とりあえず金額を入力できればよいわけですが(おつりの計算はあとで説明します)、これまでの考え方通り、マウスなどを使わずにフォーカスを移動させるようにしなければなりません。そこで、#11で作成した、全商品入力完了の「F3」キーにそのフォーカス移動も含めるようにします。フォームのキークリック時イベントプロシージャを次のように変更します。太字部分が今回追加したコードです。 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 'フォームのキークリック時 If KeyCode = vbKeyF3 Then '[F3]キーが押されたとき '編集中のレコードを強制的に書き込む DoCmd.RunCommand acCmdSaveRecord '受取金額欄にフォーカスを移動 Me!txt受取金額.SetFocus End If (以下は#10と同様) End Sub F3キーを押したときの状態 ここでもう1点、変更すべきところがあります。メインフォームである「frm売上伝票入力」のモジュールにある「cbfInitData」プロシージャに「受取金額」テキストボックスの初期化処理を追加しなければなりません。このテキストボックスは非連結ですので、次伝票に移ってテーブルが空になっても、前に入力された値が残ってしまいます。そこで、全体の初期化処理を行うcbfInitDataプロシージャに1行のコードを追加し、その値をクリアするようにします。 そのコードは次のようになります(一部抜粋)。 'サブフォームの商品コードにフォーカスを初期移動 With Me!frm売上伝票入力_sub .SetFocus !商品コード.SetFocus '受取金額をクリア !txt受取金額 = Null End With DoCmd.Echo True Exit_Here: On Error Resume Next ※もし必要であれば、受取金額をテーブルのフィールドとして追加し、データベースに保存してもよいでしょう。その場合にはこの初期化処理は不要ですが、別途テーブルや関連クエリも変更する必要があります。 |
|||
|
Copyright © T'sWare All rights reserved |