こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ACCESS2003でテーブルと一致したときだけメッセージを表示するには?

はじめまして、アクセスでデータベースを作成していたのですが、わからないことが出てきてしまい困っております。
フォーム上で、テキストボックスに入力した文字列(テキスト形式)をテーブル内のデータと照合し、一致すれば「保留対象の商品です」、なければ「保留対象の商品ではありません」といったテキストボックスを表示できるようなボタンを作りたいのです。
登録条件を変更するのではなく、メッセージが表示できさえすれば良いのです。

IFとDcount、msgboxを組み合わせることで表示できるような気はするのですが、エラーが出てしまい、作動してくれません。

私の書いたVBAコードは

IF Dcount("フィールド名","テーブル名","フィールド名="" & Me!テキストボックス名") = 1 Then
Msgbox "保留対象の商品です"
Else
msgbox "保留対象の商品ではありません"
End IF

結局、テキストボックスに入力されたデータと対象のテーブル内データを検索し、一致するデータを数えて、1個のときにメッセージを出すようにしてみたのです。
しかし、うまく動いてくれません。。
詳しい方がいらっしゃったらアドバイスいただければ幸いです。
よろしくお願いいたします。

投稿日時 - 2008-07-19 08:58:07

QNo.4187811

困ってます

質問者が選んだベストアンサー

"の位置がおかしいのでは?
フィールド名のフィールドが何かによって

文字列で"または'で囲む場合。
If DCount("フィールド名", "テーブル名", "フィールド名=""" & Me!テキストボックス名 & """") = 1 Then
または
If DCount("フィールド名", "テーブル名", "フィールド名='" & Me!テキストボックス名 & "'") = 1 Then

数値の場合。
If DCount("フィールド名", "テーブル名", "フィールド名=" & Me!テキストボックス名) = 1 Then

投稿日時 - 2008-07-19 10:09:22

お礼

実際にコードを打ち直してみたところ、正常に作動しました!
どうもありがとうございました!
フィールドがテキスト形式の場合は扱いが難しいですね^^;
区切り方をいまひとつ理解していません。。
もっと勉強してみます!
迅速なお返事ありがとうございました。

投稿日時 - 2008-07-19 22:30:16

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

DCount関数の構文がでたらめですね
詳しくはNo1さんの回答を見てください
後ヒットするものは必ずひとつなんですか
2つ以上の場合もあるなら条件は
If DCount("フィールド名", "テーブル名", "フィールド名='" & Me!テキストボックス名 & "'") >= 1 Then

投稿日時 - 2008-07-19 10:47:22

お礼

迅速なご返答ありがとうございます。
おかげさまで正常に作動しております。
どうもありがとうございました。
それにしても、テキスト形式の扱い方は難しいです。。

投稿日時 - 2008-07-19 22:34:21

ANo.2

フォームのレコードソースにテーブル名がセットされているでしょうか。

一度、フォームのプロパティを表示し、レコードソースを確認してください

投稿日時 - 2008-07-19 10:27:42

お礼

ご回答ありがとうございました。
結局、私の構文ミスだったようです^^;
おかげさまで正常に作動しております。
どうもありがとうございました。

投稿日時 - 2008-07-19 22:35:58

あなたにオススメの質問