|
初めまして!
部品問屋のイメージで得意先からの要求に対して出庫処理を登録するDBを作っています。
フォーム上には、部品コードと該当する部品の数量を入力するテキストボックスを各20個配置しています。
入力が終わった後、登録ボタンをクリックして、ループ処理で登録します。
ただ人が入力するため、同じ部品を重複してテキストボックスに入力してしまうことがあるため、登録前にチェックして重複を促して処理を中断するか、各テキストボックスに部品コードを入力した際に、先に入力したテキストボックスの値との重複確認させて改めたいと考えています。
ACCESS 2010
テキストボックス
・部品コード入力用:txt_BHN_1〜txt_BHN_20
・数量入力用 :txt_SU_1〜txt_SU_20
出来れば部品コードが入力された後にその他の19個のテキストボックスの値と重複チェックを行いその都度修正したいと考えています。
重複していればメッセージを表示して、入力したテキストボックスをクリアし、SetFocusしたいと思います。
当初は各テキストボックスのAfterUpdate処理に、以下のようにループを使ってテキストボックス名もカウントアップしてその他のテキストボックスを確認しようと考えました。
Private Sub txt_BOX_1_AfterUpdate()
Dim i As Integer
Dim N As Integer
Dim intN As Integer
i = 1
N = 2
For i = 1 To 20
intN = "Me.txt_BOX_'" & N & ".value'"
If IsNull(intN) = True Or intN = "" Then
’チェックするテクストボックスが空白ならば何もしない。
Else
If Me.txt_BOX_1.Value = intN Then
MsgBox "部品コードが重複しています!", vbCritical, "警告"
txt_BOX_1.SetFocus
CMD_ADD.Visible = False ’登録ボタンを非表示にする
txt_BOX_1.BackColor = 8421631 ' 重複しているテキストボックスの背景を赤に
Exit Sub
End If
End If
N = N + 1
i = i + 1
Next
End Sub
これだと1個目のテキストボックスに対しては、その他のテキストボックスのチェックは可能なように思いますが、2番目以降のテキストボックスに対してチェックする場合に、自身を含めずにチェックするイメージが湧かず行き詰ってしまいました。
重複チェックといえば、レコードに登録されていないかのチェックの質問が多く
類似した質問を見つけることができず、どうかご教示の程、よろしくお願い申し上げます。
|
|