Access VBA質問箱 IV

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

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


208 / 2272 ツリー ←次へ | 前へ→

【12552】重複エラー表示! ママ 14/5/31(土) 0:05 質問[未読]
【12553】Re:重複エラー表示! hatena 14/5/31(土) 16:52 回答[未読]
【12554】Re:重複エラー表示! ママ 14/5/31(土) 21:04 お礼[未読]
【12556】Re:重複エラー表示! ママ 14/6/3(火) 22:04 お礼[未読]

【12552】重複エラー表示!
質問  ママ  - 14/5/31(土) 0:05 -

引用なし
パスワード
   何時も参考にさせていただいています。

手配データをqrコード化してフォームにリーダーを使って
読み込みをしています
データの重複読み込みをさけるために手配番号を重複なしの主キーに
設定してますvbaの 更新前処理(BeforeUpdate)イベントでif文にDcountを使い
重複読み込みがされたらエラー表示を出すようにコードを記述しました。
重複読み込みがあると問題なくマクロは動くようで、手配番号フィールドで止まります
ただ、警告メッセージは一瞬パット表示されるのですが、すぐに消えてしまいます。再度フィールドをclickする再
表示はされるのですが、できれば、読み込みをし重複があったら警告メッセージを表示させ消えないようにすることは、出来ないのでしょうか?
qrコードは複数のデータを読み込みさせフィールドとフィールドはタブ(キャラ)で
移動させ最後は改行(キャラ)で次の行に行くようにqrを作っています
多分警告メッセージが表示されもqrの多分が読み込まれて警告メッセージのOKボタンが押されしまうのではないかと思っています いい方法が有りましたらアドバイスお願いいたします。
コードはこんな感じで書いてあります

Private Sub 顧客コード_BeforeUpdate(Cancel As Integer)

If DCount("手配コード", "手配マスタ", _ "手配コード='" & Me!手配コード & "'") > 0 Then Beep MsgBox "既存のデータと同じ手配コードが入力されました! " & _ "別の値を入力してください。", _ vbOKOnly + vbExclamation, "重複エラー" Cancel = True End If

End Sub

【12553】Re:重複エラー表示!
回答  hatena  - 14/5/31(土) 16:52 -

引用なし
パスワード
   リーダーを使ったことがないので、あくまで脳内シミュレーションでの回答ですので、外している可能性大です。

>データの重複読み込みをさけるために手配番号を重複なしの主キーに
>設定してます

ということなら、フォームの「エラー時」イベントで重複エラーをひろってメッセージを出したらどうでしょうか。

Private Sub Form_Error(DataErr As Integer, Response As Integer)
  Const conDuplicateKey = 3022

  If DataErr = conDuplicateKey Then
    Response = acDataErrContinue
    Me.手配コード.SetFocus
    Beep
    MsgBox "既存のデータと同じ手配コードが入力されました! " & _
    "別の値を入力してください。", _
    vbOKOnly + vbExclamation, "重複エラー"
  End If
End Sub


これなら、Enterキーが押されて、レコード保存しようとするときに発生しますので、Msgboxは閉じないと思います。

【12554】Re:重複エラー表示!
お礼  ママ  - 14/5/31(土) 21:04 -

引用なし
パスワード
   ▼hatena さん:
なるほど!自宅にはリーダーが無いので休み明けに
早速試してみたいと思います
vba初心者なのでまたアドバイスをお願いいたします。

【12556】Re:重複エラー表示!
お礼  ママ  - 14/6/3(火) 22:04 -

引用なし
パスワード
   >▼hatena さん:
>なるほど!自宅にはリーダーが無いので休み明けに
>早速試してみたいと思います
>vba初心者なのでまたアドバイスをお願いいたします。


本日、ためしたところ問題なく動きます。
ありがとう御座いました

208 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free