ACCESSで検索フォームを作り、そこにお客様IDを入れて、ヒットした場合は、別の入力用フォームが開いて、その方のデータが表示されるようにしています。
そこで教えていただきたいことがあるのですが、今の状態ですと、対象にないお客様IDを入れた場合、新規の画面が開いてしまいます。
これを開かないようにするにはどのようにすればよろしいのでしょうか。
検索フォームがどのようにして作っているかですが、クエリを作成し、お客様IDのレコードを追加し、抽出条件に「Like [forms]![お客様検索]![お客様ID] & "*"」と入れています。フォームではお客様IDを入れて、「実行ボタン」を押すと、フォームを開くマクロが実行されるようにしています。
No.1ベストアンサー
- 回答日時:
実行ボタンのクリック時イベントにフォームを開くだけではなく分岐をするように記述しなおせば良いのではないでしょうか。
If (DCount("[お客様ID]", "テーブル名", "[お客様ID] = [forms]![お客様検索]![お客様ID]) then 0
msgbox "該当するお客様IDがありません"
else
DoCmd.RunMacro "フォームを開くマクロ名", , ""
end if
のように
早速の回答、ありがとうございます。
ただ申し訳ないのですが、
>DCount("[お客様ID]", "テーブル名", "[お客様ID] = [forms]![お客様検索]![お客様ID]
の部分がうまくいきません。Dcountの検索数をメッセージボックスに表示するように変更してテストしてみたのですが、
0と表示されてしまいます。空白を入れた場合は、全件数の値が表示されます。
あと
>then 0
というのがよく意味が分からないのです。
No.3
- 回答日時:
>then 0というのがよく意味が分からないのです
失礼しました。
If DCount("[お客様ID]", "テーブル名", "[お客様ID] = [forms]![お客様検索]![お客様ID])=0 then
msgbox "該当するお客様IDがありません"
else
DoCmd.RunMacro "フォームを開くマクロ名", , ""
end if
の間違えです。
No.2
- 回答日時:
もうひとつの手段として、検索結果を入力するフォームの「開く時(OnOpen)」イベントで、開くのをキャンセルするという方法もあります。
Private Sub Form_Open(Cancel As Integer)
If DCount("[お客様ID]", "お客様情報","[お客様ID]=[forms]![お客様検索]![お客様ID]") = 0 Then OpenCancel
End Sub
Private Sub OpenCancel()
MsgBox ("該当するお客様は登録されておりません")
DoCmd.CancelEvent
Exit Sub
End Sub
※テーブル名又はクエリ名を「お客様情報」としています※
なお、お客様IDが主キーであれば、「Like」でのあいまい検索にはしなくていい気がしますが・・・?
あと、No.の方の「DCount(~) Then 0 MsgBox ~」は、「DCount(~)=0 Then MsgBox ~」の打ち間違いではないかと思います。
> 0と表示されてしまいます。
該当のないお客様IDを入力した(→従来、新規レコードで展開されていた場合)のであれば、「0」が返されて問題ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
accessで該当するレコードがない場合
その他(プログラミング・Web制作)
-
Accessフォームを開くときに決まった順番で表示
Access(アクセス)
-
フォームウィンドウを最前面に表示したい(ACCESS)
Microsoft ASP
-
-
4
access 検索フォームで検索が出来ない(コードについて)
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessの検索フォームで。
-
Accessのフォームで、空欄のレ...
-
SQL*Loader
-
パススルークエリの動的パラメ...
-
検索フォームで空白を抽出したい
-
検索にて抽出されたレコードを...
-
access 検索フォームで検索が...
-
ACCESS2003 でクエリの抽出条件...
-
Access レポート印刷するときに...
-
YahooのIDがロックされてしまい...
-
passwordが入れられません・・・・
-
Accessレポートのチェックボッ...
-
レコードを保存するコード ア...
-
データベースのINT型項目にNULL...
-
Accessで、フォームからフォー...
-
「フォームを作成できませんで...
-
JW-CADのAutoモードの解除はで...
-
クエリで出来た表にチェックボ...
-
アクセスで数値型のフィールド...
-
新規レコード行を非表示にしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
年月日を持つテーブルから年月...
-
Accessのフォームで、空欄のレ...
-
検索フォームで空白を抽出したい
-
SQL*Loader
-
アクセスのフォームにカンマ区...
-
access 検索フォームで検索が...
-
VBAからクエリのパラメータを設...
-
アクセス マクロのメッセージ...
-
ACCESS2003 でクエリの抽出条件...
-
ACCESS マクロで検索に...
-
AccessにてExcelファイル名にパ...
-
パススルークエリの動的パラメ...
-
Access2000で文字列中の半角ス...
-
複数条件検索について
-
Accessで検索画面を作る方法
-
ACCESSのフォーム上で複数検索...
-
クエリの条件式に複数のコンボB...
-
AccessのデータをExcelテンプレ...
-
Accessの検索フォームで。
-
Access2007のサブフォームのReq...
おすすめ情報