• ベストアンサー

Accessフォーム検索

AccessでA、B、C個別のフォーム検索があり 各々検索結果を別フォームで表示させています。 ここから更に、条件選択で表示させる方法はありますか? 例) A:カテゴリー B:名前 C:素材 をAND、ORでフォーム表示させたいのです。 宜しくお願い致します。

  • 9don
  • お礼率100% (6/6)

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.2

SQL文はクエリをとりあえずANDで作成して表示をSQLにしたら取り出せますので、それをもとに(場合によってはそのまま)利用できます。 テキストボックスが非連結の場合は ])='" + Me![キーワード1] + "') のように値だけ取り出すようにします。 あとはANDのところを + op +に変更すればいいです。 SQLを取り出してからの処理はこちらの回答を参考にしてください。 https://okwave.jp/qa/q9515365/a26556221.html クエリをテーブル作成でつくれば Set SQLdata = dbsCurrent.OpenRecordset(SQLstr) としなくても DoCmd.RunSQL SQLstr とすれば検索結果データのテーブルが作成されます。

9don
質問者

お礼

ご丁寧に回答ありがとうございます。 挑戦させていただきます。

その他の回答 (1)

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.1

たぶんオプションボタンをフレームでグループにしていると思いますので ANDオプションボタンのオプション値を 1 ORオプションボタンのオプション値を 2 と設定しているとして If Me![フレーム].Value = 1 Then op = "AND" ElseIf Me![フレーム].Value = 2 Then op = "OR" End If SQLstr = "SELECT 略" + _ "FROM 略 " + _ "WHERE (((略) " + op + _ " ((略) " + op + _ " ((略));" こんな感じでSQL処理してみてはいかがでしょう。

9don
質問者

お礼

ご回答ありがとうございました。 「SQL処理」があまり理解できていない 状況でして。

関連するQ&A

  • Access フォーム検索

    Access フォーム検索で添付のように 3つのキーワードをマスターの3つの項目から 検索することはVBで記述可能でしょうか? ※キーワドの位置(番号)とマスターの カテゴリー番号に関連はありません。 OR条件ですと、3つのキーワードのいづれかが カテゴリー1~3に存在する。 AND条件ですと3つのキーワードが カテゴリー1~3に順不同で存在する。 宜しくお願いします。

  • Accessの検索フォーム

    またまたAccessについての質問です。 検索フォームというのを作りました。 テーブルのデータから条件に合うものだけを抽出したいのです。 たとえば1つ目の検索フォーム[A]のテキストボックスに「AAA」を入力します。 そのあとBには「BBB」と入力します。 同じくCには「CCC」と入力します。 そして絞込みボタンを押したらAAAでBBBでCCCのものが抽出されます。 これはうまくいきました。 とりあえず、複数条件なので、わけもわからず「&」で結んでしまいました・・・。 ↓は絞込みボタンのクリック時です。↓ 困ったのは、すべて検索条件を指定しない場合です。 たとえば「AAA」で「CCC」のものを抽出したいとき、[A]のテキストボックスに「AAA」と入れ [C]のテキストボックスに「CCC」と入れます。 そして絞込みボタンをクリック。 するとBが未記入だからか、抽出されたのは真っ白でした・・・。 Option Compare Database Private Sub コマンド50_Click() Me.Filter = "契約='" & Me!テキスト51 & "'and A='" & Me!テキスト57 & "'" Me.FilterOn = True End Sub 組み合わせが自由になる検索フォームにするにはどうすればよいのでしょうか? 誰か助けてくださ~い!

  • Access、検索用フォームでのあいまいな検索

    現在、Accessでデータベース作成をしています。 テーブル:  ・テーブルA          ・テーブルB          (A・B間にリレーションシップ設定) クエリ    ・検索クエリ(テーブルA・テーブルBを元に作成) フォーム   ・検索用フォーム(デザインビューでフォーム作成より)          ・検索結果フォーム(検索クエリを元に作成) また、以下のような設定を入力しました。 「検索クエリ」の抽出欄  Like "*" & [Forms]![検索用フォーム]![検索したい名前] & "*"・・(1)  ※検索したい項目、すべての抽出欄に設定済 「検索用フォーム」  検索実行ボタンを作成し、マクロを設定  ・フォームを開く→「検索結果フォーム」  ・フィルタ→「検索クエリ」 上記の設定により、検索用フォームに検索文字を入力することで、その結果を「検索結果フォーム」に反映することができました。 ただ、テーブルAが元になっている項目の抽出欄のみに(1)を入力すると、うまくいくのですが、テーブルBが元になっている項目欄にも (1)を入力しようとすると、検索用フォームからうまく検索することができなくなります。 2つのテーブルを元にしたクエリからは、検索用フォームをつかった複数のOR検索はできないのでしょうか?? ご存知の方、ぜひ教えてください。 よろしくお願いいたします。

  • ACCESS フォーム上での条件設定

    どなたかお知恵をお貸しください。 Access2000 検索用のフォームを作成しました。 A・B・C・D・E・Fというフィールドがあり、それらのフィールドを 含むデータ形式のフォームが作成されています。 やりたいことは、フォームにテキストボックスを5つ配置し それぞれ(A・B・C・D・E・Fというフィールドに対する)の条件 を入力して、実行(コマンドボタン)をクリックすると 条件に一致したフォームが表示されてくるようにしたいのです。 ただし、条件が入力されない場合もあります。 (5つのうち1つだけ条件が入る場合など) 初心者などでどのように設定すればいいのか分かりません。 どなたかお力をお貸しください。 よろしくお願いします。

  • インターネット検索

    インターネット検索で、A&B&C(A,B,C全てを含む)を条件に検索すると、 A and/or B and/or C の内容での検索になります。 A&B&Cを希望通り検索できるエンジンは無いでしょうか?

  • Access2000で検索フォームの作成方法を教えてください。

    Access2000で検索フォームの作成方法を教えてください。 Accessの知識はテーブル、クエリー、フォームの初歩的な作成方法ぐらいしか分かりません。 【今の状況】 フォームを4つ作成しています。 (1)検索条件を指定するフォーム1つ(F4)を作成済みです。 (2)フォーム(F4)には、条件を指定するコンボボックス(条件1、条件2)を2つと、  コマンドボタン(検索ボタン)を1つ作成しています。  ※コンボボックスは、非連結で、値集合タイプに値リストを設定し、値集合ソース値を指定しています。   ※コマンドボタンは、フォーム上にボタンを描いただけで何も設定していません。 (3)検索結果を表示させるフォーム3つ(F1、F2、F3)を作成済みです。 (4)それぞれメインフォーム(M)とサブフォーム(S)で構成されています。 (5)メインフォーム(M)は、3つのフォーム(F1、F2、F3)共通です。  サブフォーム(S)は、3つとも表形式ですが、表示している元データ(クエリー)が異なります。 (6)検索条件を設定したい項目は、メインフォーム(M)にも表示されている項目です。 【やりたいこと(完成イメージ)】  検索条件指定のフォームに作成している「検索ボタン」をクリックすると、  検索結果表示用のフォーム(F1、F2、F3)に検索条件に該当するデータのみ表示させたい。  (上記(6)にも書きましたが、メインフォーム(M)にも検索条件に指定した値を表示させたいです。)  検索条件は、最大6項目指定しますが、条件が選択されているもののみをAND条件で検索したいです。 【教えていただきたいこと】  コンボボックスの条件をANDで指定するには、どこに何を設定すれば良いのでしょうか?  「検索ボタン」の作成方法後に、設定をする必要があると思うのですが、どこに何を設定すれば良いのでしょうか?  検索条件フォーム(F4)の結果を、検索結果表示フォーム(F1、F2、F3)に関連付けるには、どこに何を設定すれば良いのでしょうか?  その他に設定が必要な部分はありませんか?    あと、お勧めの方法が他にあれば教えてください。 初歩的なことしか理解していませんので、 不十分な説明文で申し訳ありませんが、 よろしくお願いします。

  • Access2007 フォームでのOR検索

    Access歴は2カ月程度です。 クエリから作成したフォームの中でのOR検索を行いたいのですが フィールド名・・・工具名,使用番号 検索に使用する非連結txtbox・・・工具名条件,使用条件 となっており、 Private Sub 検索_Click() If [工具名条件] <> "" Then 検索文字 = 検索文字 & " and 工具名 like '*" & [工具名条件] & "*'" If [使用条件] <> "" Then 検索文字 = 検索文字 & " and 使用番号 like '*" & [使用条件] & "*'" If 検索文字 = "" Then Me.FilterOn = False Else Me.Filter = Mid(検索文字, 6, 2000) Me.FilterOn = True DoCmd.Requery End If End Sub となっており、工具名と使用番号のAND検索は出来ているのですが、使用番号が1~6あり、 OR検索を使用して2つを検索条件にし、それぞれ該当している結果を表示させたいのですが。。。 工具名はカタカナや漢字のみです。 使用番号は「1,2,3」等と入力してあります。 クエリの抽出条件は無記入です。 どうぞ、よろしくお願いします。

  • Accessのフォーム操作について

    Accessの帳票フォーム上で、ある特定の条件に当てはまるレコードの特定のコントロールを非表示にする方法はありませんでしょうか? 例えば、A,B,Cというフィールドがあって、AがNull値ならそのレコードのCコントロールを非表示にしたいのですがどうやってもうまく行きません。 条件があてはまるレコードのみの特定のコントロールを非表示にし、レコードの表示はあくまでフィルタを掛けずに全件表示でなくてはいけないという制約がありまして困っております。 これって不可能でしょうか? どなたかお知恵をお貸し下さい。

  • Access2000で、あるフォームを開いた後でないと見れないフォームがあります。

    Access2000を用いたフォームの整備を行っています。 Aフォーム(ID番号や会社名などの必須項目を入力する) Bフォーム(詳細を見るためのフォーム) Cフォーム(支払金額を入力するフォーム) BとCでは、Aで入力したID番号や会社名などが自動的に表示されます。 しかし、Aで入力を行った後、先にBを開くと、 全てのテキストボックスがからっぽのまま表示されてしまいます。 先にCを開いてからBを開くと、ちゃんと表示されます。 この場合、Cは開きっぱなしで閉じなくても大丈夫です。 Cフォームで何かを入力するわけでも無いのに、 どうしてCを開いた後でなければ表示されないのか判りません。 この場合、どういった可能性が考えられるでしょうか? 初心者ですので、見当違いの方向ばかり考えているかもしれません。 「これだけの説明じゃ判らないから、もっとここら辺を詳しく」 という指摘などをして戴けると本当に幸いです。 宜しくお願い致します。

  • ACCESSの検索フォーム

    アクセス初心者なのですが教えてください。 検索フォームをつかっていくつかの条件に当てはまるデータをフォームで抽出したいのですがどのようにしたらいいか分かりませんどなたか教えてください。 マクロでWHEREつかってやってみたのですがいくつかの条件を入れたのですが途中で切れてしまうのと、ひとつでも空欄があるとまったく抽出しません。 どうかよろしくお願い致します。

専門家に質問してみよう