| Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 |
|
得意先データを効率的に入力するには、識別IDで検索を行ってから追加データを入力することです。 ここでは、検索を行った後にデータ入力を行い、また新規の得意先の場合は登録まで行う技を紹介します。 検索とデータ入力を行う
得意先フォームの作成得意先フォームを作成します。
フォームを開く時イベントプロシージャフォームを開く時イベントプロシージャを作成します。 Private Sub Form_Open(Cancel As Integer)
On Error GoTo エラー
Dim Count As Variant
Count = DMax("ID", "tbl_main") + 1 ' --- A
DoCmd.GoToControl "txt_識別検索" ' --- B
Me.Filter = "ID =" & Count ' --- C
Me.FilterOn = True ' --- D
Exit Sub
エラー:
If Err.Number = 2448 Then
MsgBox "データを入力して下さい。", 16
Else
MsgBox "予期しないエラーが発生しました。エラーNo:" & Err.Number, 16
End
End If
End Sub
解説
留意点
txt_識別検索テキストボックス更新後処理イベントプロシージャの作成txt_識別検索テキストボックス更新後処理イベントプロシージャを作成します。 Private Sub txt_識別検索_AfterUpdate()
Dim i As Variant
Dim Count As Variant
Dim strmsg As String
i = DLookup("識別ID", "tbl_main", "[識別ID]=" & Me.txt_識別検索) ' --- A
Count = DMax("ID", "tbl_main") + 1 ' --- B
strmsg = "過去のデータがありません。新規登録しますか?"
If IsNull(i) = True Then ' --- C
If MsgBox(strmsg, 17) = 1 Then ' --- D
Me.AllowAdditions = True ' --- E
DoCmd.GoToRecord , "", acNewRec ' --- F
Me.txt_識別 = txt_識別検索 ' --- G
Me.txt_氏名.SetFocus
Else
Me.Filter = "ID =" & Count ' --- H
Me.FilterOn = True
Me.txt_識別検索.SetFocus
Me.txt_識別検索 = "" ' --- I
End
End If
Else ' --- J
Me.Filter = "識別ID =" & i ' --- K
Me.FilterOn = True
Me.AllowAdditions = False
Forms!frm_main!frm_sub.SetFocus ' --- L
DoCmd.GoToRecord , "", acNewRec ' --- M
End If
End Sub
解説
txt_都道府県テキストボックス更新後処理イベントプロシージャの作成txt_都道府県テキストボックス更新後処理イベントプロシージャを作成します。 Private Sub txt_都道府県_AfterUpdate()
DoCmd.GoToControl "frm_sub" ' --- A
End Sub
解説
動作確認
関連ページ
|