Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


942 / 9994 ←次へ | 前へ→

【12358】複数のテキストボックスに入力した値の重複確認について
質問  ちゃぴんこくん  - 13/6/27(木) 0:17 -

引用なし
パスワード
   初めまして!
部品問屋のイメージで得意先からの要求に対して出庫処理を登録する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番目以降のテキストボックスに対してチェックする場合に、自身を含めずにチェックするイメージが湧かず行き詰ってしまいました。

重複チェックといえば、レコードに登録されていないかのチェックの質問が多く
類似した質問を見つけることができず、どうかご教示の程、よろしくお願い申し上げます。
1,082 hits

【12358】複数のテキストボックスに入力した値の重複確認について ちゃぴんこくん 13/6/27(木) 0:17 質問[未読]
【12359】Re:複数のテキストボックスに入力した値の... hatena 13/6/27(木) 10:17 回答[未読]
【12360】【御礼】複数のテキストボックスに入力した... ちゃぴんこくん 13/6/28(金) 19:19 お礼[未読]
【12361】Re:【御礼】複数のテキストボックスに入力... hatena 13/6/28(金) 19:50 回答[未読]

942 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078191
(SS)C-BOARD v3.8 is Free