プロが教えるわが家の防犯対策術!

いつもお世話になっております。
Accessで顧客情報の管理をしようと思って始めました。
どうしても躓いてしまったので、どう直せば良いのかご教授ください。

<やりたい事>
① テキストボックスが空白の場合、メッセージボックスを出して処理を中断。
② 顧客番号がテーブルに存在しない場合は、メッセージボックスを出して処理を中断。
③ ①②に問題がない場合、編集画面に飛ぶ

①と③はなんとか出来たのですが、②が分かりません。
現状は存在しない番号を打っても新規レコードが出る状態です。

以下補足
・顧客情報の管理(数字4桁+アルファベット=顧客番号)
・メインメニューには登録ボタンと編集ボタンとテキストボックスがある
・編集ボタンを押すとテキストボックスに入力された顧客番号を抽出して編集する流れ


Private Sub コマンド4_Click()

If IsNull(Me.テキスト2) Then
MsgBox "棚番が入力されていません"
Else

DoCmd.OpenForm "T_A_MENBER", acNormal, "", "[顧客情報]=" & "'" & [テキスト2] & "'", , acNormal
DoCmd.Close acForm, "mainmenu"

Exit Sub
End If

よろしくお願いいたします。

A 回答 (2件)

If IsNull(Me.テキスト2) Then


 MsgBox "棚番が入力されていません"
ElseIf IsNull(DLookup("顧客情報", "テーブル名", "顧客情報 ='" & Me.[テキスト2] & "'")) Then
 MsgBox "棚番が存在しません"
Else

 DoCmd.OpenForm "T_A_MENBER", acNormal, "", "[顧客情報]=" & "'" & [テキスト2] & "'", , acNormal

ってところですかね。
テーブル名、フィールド名は、ご自分のものに置き換えてください。
    • good
    • 0
この回答へのお礼

ベストアンサー迷いましたが、やりたかった事を解答して
頂いたbonaronさん、ありがとうございました。

お礼日時:2022/10/11 21:19

顧客番号にリレーションシップ(参照整合性)を設定するとよいです。


存在しない顧客番号を入力すると例外が発生するので、メッセージボックスを出すなどの処理を記述できます。
「Access IF文でテーブルに存在しな」の回答画像2
    • good
    • 0
この回答へのお礼

osamuyさん解答ありがとうございます。
もっと勉強してリレーションを活用できるようにいたします。

お礼日時:2022/10/11 21:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A