• 締切済み

access(アクセス):検索して、該当すればメッセージを表示したい

よろしくお願いいたします。 フォームのテキストボックスに数字を入力したときに この数字がテーブルのリストに存在する数字の場合は、 「該当有」とメッセージボックスで表示したく思っております。 例 テーブル   フォーム    メッセージボックス  1       2       該当有と表示  2       9       なにも表示しない  3      1,9       該当有と表示  4  5 メッセージボックスの表示の仕方はわかるのですが、 関数で検索をどのようにしたらよいかわかりません。 よろしくお願いいたします。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

>DCount("*",[テーブルa],[(テーブルaの)フィールドb] In (" & Forms!フォーム名!テキストボックス名 & ")) なにこれ? 私の回答は DCount("*","テーブル名1","フィールド名 in (" & Forms!フォーム名!テキストボックス名 & ")" ですよ Dcount関数の第2項はテーブル名 第3項は抽出条件です どちらも文字列で与えます 分からない関数はヘルプで調べましょう 回答以上の情報が書かれています

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

テキストボックスに入力した数字のレコードがテーブルにあるかどうかは DCount("*","テーブル名1","フィールド名 in (" & Forms!フォーム名!テキストボックス名 & ")")>0 で調べられます

ayaya11
質問者

お礼

返答が遅くなり、申し訳ございませんでした。このたびは、ありがとうございました。結局、教えていただいたにもかかわらず、まだうまくいっていないのですが、ありがとうございました。 マクロで 条件 DCount("*",[テーブルa],[(テーブルaの)フィールドb] In (" & Forms!フォーム名!テキストボックス名 & "))>0 アクション メッセージボックス としたのですが、実行すると 「このオブジェクトには、オートメーションオブジェクト’テーブルa’は含まれません。」と表示されます。 もしよろしければ、解決方法を教えてください。 よろしくお願いいたします。

noname#140971
noname#140971
回答No.2

DCount関数は最適解じゃありません。 単にINの説明のためです。

noname#140971
noname#140971
回答No.1

tab1: ID_数値 _1____1 _2____2 _3____3 _4____4 _5____5 [イミディエイト] ? DCount("*", "tab1", "数値 IN (1,9)") 1 集合: IN WHERE節のキーワード INに値を列挙することで、 その値を持つ列を抽出することができます。 <列名> [NOT] IN (<値1>,<値2>,...<値n>,) キーワード IN を使えば良いと思います。

関連するQ&A

  • 該当レコードがない場合その旨表示させたい

    Access2000を使用しています。 フォーム上のテキストボックスに日付を入力してボタンを押下すると、入力された日付に該当するレコードを、ソースとなるテーブルから選択クエリで抽出し、それをもとにレポート出力するようになっています。 入力された日付のレコードがソースとなるテーブルにない場合、「該当の日付のレコードはありません」とメッセージを出すようにしたいのですが、VBAでどのようにすればいいでしょうか? IsNull関数を用いて、If~Then~Elseを使おうと考えたのですが、この時テキストボックスに入力された日付で、ソーステーブルのレコードを絞り込む方法がわかりません。

  • Accessでのデータ検索(表示)について

    Access初心者です。 Accessでのデータ検索(表示)について質問します。 例えば、フィールド列がAからEまであり、A列には1から20までの数字がはいっており、BからE列には金額が入ったテーブルがあるとします。 そして、フォーム上に「甲」「乙」と言う名前のテキストボックスが2つあり「甲」のテキストボックスにB10と入力すると「乙」にテーブルのA列の10とB列で交わる金額が表示され、C20と「甲」に入力するとA列20とC列で交わる金額が表示されると言った具合に「甲」の値が変わるつど「乙」も変わるようにするには、どうすればよいでしょうか?少し分かりにくい質問ですみません。 エクセルだとMATCH関数やINDEX関数等を組み合わせることで可能かと思いますが、Accessではどうすればよいか分からないのでご教示ください。 Accessは2000を使用しています。

  • accessで未入力の場合にメッセージボックスを表示したい

    アクセスのフォーム(テキストボックス)が、未入力の場合メッセージボックスを表示したいです。 【追加条件】 1.テーブルで”入力規則”、”エラーメッセージ”は使わない。 2.vbaは使わない。 3.マクロの”条件”のみで処理する。 ---------------------------------------------------- vbaを使っての方法はあるみたいですが、マクロだけで入力判定をして、未入力の場合にメッセージボックスを表示する方法はないでしょうか?

  • Access2003 コントロールの(?)エラーメッセージ

    Access2003 コントロールの(?)エラーメッセージ excelからインポートしたデータでテーブルを作り、そこから、今後もデータを増やしていけるようにフォームを作ろうとしています。 まず、オートフォームでフォームを作りました。 データの中に「カテゴリー」を表示するフィールドがあり、そこはフォーム入力時にプルダウンで選んで登録できるように、コンボボックスを使ってカテゴリーフィールド(コントロール)を作りなおしたところ、「例えば数値型のフィールドに文字列を挿入しようとした」というようなエラーメッセージが出ます。 このフィールドは元からテキスト値が入っていたところで、プルダウンで選べるようにしたカテゴリーリストのテーブルの方もテキスト値で入力しています。 なので、このエラーメッセージが「例えば」と言っているのと全く同じエラー(数値型のフィールドにテキスト値を入れる)がでているわけではないとは思うのですが、他に何が悪のいかがわかりません。 どこをどうしたらいいのでしょうか?

  • ACCESS マクロで検索に該当する全てのレコード表示方法は? 

    ACCESSでフォーム上のデータを、検索・表示しようとしています。(同一フォーム上で、テキストボックスに入力・コマンドボタンで検索実行・検索結果を表示) 該当するレコードのみ表示させたいのですが、上手くいきません・・・。 検索に該当するレコードにカーソルが移動するのはいいとして、それ以外の全てのデータも表示してしまいます。   例)タナカ を検索して、 検索結果はレコード内全てのタナカさんを表示 何とか【検索に該当するレコードのみ】マクロで表示できないでしょうか。

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

    はじめまして、アクセスでデータベースを作成していたのですが、わからないことが出てきてしまい困っております。 フォーム上で、テキストボックスに入力した文字列(テキスト形式)をテーブル内のデータと照合し、一致すれば「保留対象の商品です」、なければ「保留対象の商品ではありません」といったテキストボックスを表示できるようなボタンを作りたいのです。 登録条件を変更するのではなく、メッセージが表示できさえすれば良いのです。 IFとDcount、msgboxを組み合わせることで表示できるような気はするのですが、エラーが出てしまい、作動してくれません。 私の書いたVBAコードは IF Dcount("フィールド名","テーブル名","フィールド名="" & Me!テキストボックス名") = 1 Then Msgbox "保留対象の商品です" Else msgbox "保留対象の商品ではありません" End IF 結局、テキストボックスに入力されたデータと対象のテーブル内データを検索し、一致するデータを数えて、1個のときにメッセージを出すようにしてみたのです。 しかし、うまく動いてくれません。。 詳しい方がいらっしゃったらアドバイスいただければ幸いです。 よろしくお願いいたします。

  • Access2003 フォーム上での表示と入力について

    テキストボックスの入力は「H1710」 フォーム上での表示はH17/10 テーブルに入力されるデータはH1710を使用するこちらが用意した関数結果 この様なことは可能でしょうか? 「一度仮テーブル(H1710)に保存して置いてクエリで関数結果を算出 それが本来のテーブルに入力される。」 方法としてはこの様な感じだと思うのですが・・・ 分かる方お願いします。

  • アクセスで注文ナンバを検索して、表示させたい。

    こんにちは。 マイクロソフトアクセスで注文表を作っています。 フォームで、注文ナンバを入力すると、そのフォームにその注文情報が全て表示したいです。 (1)フォームにテキストボックスを作って、注文ナンバを入力→表示 (2)フォームにコンボボックスを作って、注文ナンバを入力→表示 検索は、情報を保存しているテーブルからしたいです。 どちらのやり方でも良いので、やり方をお願いします。 VBAは、ほとんどわからないので、アクセスで教えていただければ、幸いです。 どうぞよろしくお願い致します。

  • アクセス(ACCESS)のリストボックスについて

    アクセスでフォームにテキストボックスとリストボックスを配置して、 テキストボックスに入力した文字列により、リストボックスに表示される データを変えたいのですが(フィルタをかけるというのでしょうか??) そこで、vbaを用い、リストボックスのプロパティの値集合ソースに SELECT * FROM aaa where aaa.bbb like "*あ*"; 'あ と言う文字のあいまい検索のつもり ”あ”はテキストボックス    に入力されている。 と入るような事を考えたのですが、ここで、aaaの部分がテーブルを基にした 場合は、該当するデータすべてが表示されますが、クエリーを基にすると 先頭のデータしか表示しないのです。 たぶん、素人の考えなのでしょうが、どうしてそうなるのかが分かりません。 教えていただけないでしょうか? できたら、クエリーを基にしても、該当データが表示できる方法も 教えてください。お願いします。 VBAは(?)かなりの初心者です。上記の方法も本に書いてあった物を やっと流用しました。猿にも解るくらいでお願いします。 ちなみに、アクセスは2000を使用しています。

  • Accessでの検索

    宜しくお願いします。 Accessで検索フォームを作成しようと思っています。 フォームから入力した番号を検索して 結果をテキストボックスに表示するといった感じです。 質問の内容は複数のテーブルがある場合、 どのようにすればいいのか?です。 色々調べてみたのですが、わかりません・・・。 ご存知の方がおりましたら教えて下さい。 宜しくお願いします。

専門家に質問してみよう