#418 最後に入力した値を新規レコードの自動入力する方法 フォーム、VBA

事務的な作業において、連続して次々とデータを入力していくような場面では、直前に入力したのと同じ値を次の新規レコードにも入力するということがよくあります。
そのような場合、次のようなプログラムを使うことによって、最後に入力した値を新規レコードに自動的に入力させることができます。

ここでは、「商品コード」という名前のコンボボックスで選択または入力された値をいったんPublic変数に保存し、カレントレコードが新規レコードに移動したときにそれを自動的に代入処理しています。

'入力値保存用のPublic変数
Private pstrPCode As String

Private Sub 商品コード_AfterUpdate()
'商品コードの更新後処理

  '入力された値をPublic変数に保存
  pstrPCode = Me!商品コード.Value

End Sub

Private Sub Form_Current()
'フォームのレコード移動時

  If Me.NewRecord And Len(pstrPCode) > 0 Then
    'そのレコードが新規レコードでかつPublic変数保存済みならそれを代入
    Me!商品コード = pstrPCode
  End If

End Sub


実行例:
  1. まず、商品コードのコンボボックスから「アメリカンクラッカー」を選択して、そのレコードのデータ入力を行います。
    実行結果

  2. そのまま所定のデータを入力して、Enterキーなどカーソルを移動していきます。そしてカーソルが次の"新規レコード"に移動すると、商品コードの欄に「アメリカンクラッカー」が自動的に入力されます。
    実行結果
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved