• ベストアンサー

Accessでキーワード検索(抽出)

Access97で新聞記事のデータベースを作っています。 以下のようなテーブルがメインの非常に単純なものです。 ┌──┬───┬──┬──┐ │日付│見出し│分類│備考│ ├──┼───┼──┼──┤ 新聞記事を日付やキーワードで抽出したいのですが、 キーワード検索がうまく出来ません。 パラメーターで見出し列からデータを抽出したところ、 完全に一致するデータは抽出されるのですが、 「*キーワード*」で一部合致のデータを 抽出することは出来ませんでした。 デザインビューで「抽出条件」に入力すれば 「*キーワード*」でも可能なことは確認しましたが Accessに慣れていない人に操作をさせたいため、できれば キーワード入力を促すフォーム(ダイアログ)表示 ↓ キーワードを入力して抽出 ↓ クエリー、フォーム又はレポートに表示 という手順にしたいのですが、 Accessの機能のみでそういったことはできますでしょうか? VBAを使った方がいいでしょうか?

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

  • ベストアンサー
  • omusupa
  • ベストアンサー率61% (115/186)
回答No.2

抽出条件のところに Like "*"&[キーワードを入力して・・]&"*" ではいかがですか?(我がPCのAccessは2000ですが・・)

kamonohashi
質問者

お礼

97でも出来ました! Like"*[キーワード]*" でやってみたらだめだったのですが、 Like"*"&[キーワード]&"*" で出来ました。 ありがとうございました。

その他の回答 (1)

noname#4564
noname#4564
回答No.1

  パターンマッチを行うときは、比較演算子 = ではなく、Like演算子を使います。 なお、ワイルドカードは、DAOでは「*」ですが、ADOでは「%」ですので、注意が必要です。  

kamonohashi
質問者

お礼

Likeは知っていたのですが Like"*[キーワード]*" と入力したら うまくいかなかったのです。 回答No.2の方法でうまくいきました。 回答ありがとうございました。

関連するQ&A

  • Accessで日付を抽出するパラメータを設定したい

    Accessのクエリで日付に対して与えているパラメータがあります。 パラメータで指定したいデータはフォームのテキストに入力した日の23:59:59 以降の日付を抽出したい。 入力:数値8桁(yyyymmdd)で行う 抽出先テーブルのデータ:yyyy/mm/dd hh:mm:ss 現在以下のパラメータを日付に対して与えると「式が複雑すぎます、、、」と注意されてしまいます。 指定日の23:59:59を抽出範囲として指定するのはどうしたらよいでしょうか? 入力値の変換も含めて、以下のパラメータを入れています。 「+"23:59:59"」をとればエラーは出ません。 <=IIF(Len([Forms]![フォーム名]![日付])=8,CDate(Format([Forms]![フォーム名]![日付],"@@@@/@@/@@")),#9999/1/01#)+"23:59:59" どなたか、お助け下さい。よろしくお願い致します。

  • アクセスの抽出について

    Win2000、アクセス2000を使用しています。 フォーム上のテキストボックスに検索条件を入力して抽出をさせる場合に、AというフォームとBというフォームにそれぞれ検索条件を入力してAB両方の条件に合致するデータを抽出することは可能でしょうか? 可能でしたら、手順等教えてください。

  • アクセスで日付(期間)抽出

    アクセスでわからないことがあるので教えて下さい。 アクセス2003を使用しています。 フィールド名  日付    名前  代金        2001/10/14  田中  4000        2001/04/05  鈴木  1000 とデータが100件ほど入っています。 この日付でたとえば、4月5日~9月15日までの データだけを抽出したい場合どうすればいいでしょうか? 抽出はできれば、入力フォームを作成して 入力フォームから日付を入れれば、抽出する形をとりたいんです。 お願いいたします。

  • パラメータークエリの抽出ができません

    アクセスで、抽出条件に「>=[いつから] And <=[いつまで]」と日付の範囲指定をしてデータを抽出するクエリを作りましたが、表示されるパラメータに日付を入力して実行してもすべてのデータが表示されてしまいます。 どうしてでしょうか?

  • Accessで検索フォームを作成したい。

    Access2000でDBをつくりました。 そのデータから検索をして、抽出をしたいのです。 検索条件をいれるデータはこれ、と決まっていればパラメータークエリでもつくればいいのですが、どれでも検索条件にするようにしたい、と使用者から頼まれました。 入力方法としては単票フォームを開き、検索したい項目に、検索条件をいれると抽出される、というようなものです。 検索したい項目は日付かもしれないし、名前かもしれない、はたまた会社名かもしれない、とバラバラなのです。 その項目毎にパラメータクエリをつくるのもちょっと・・・と思うので。 何かいい方法はありますでしょうか? よろしくお願いします。

  • Accessで「キーワード検索」をしたい

    前任者が作ったデータベースを触っています。 私自身はAccessの基本操作がわかるくらいでVBAとかはよくわかりません。 今回その修正がしたいと思っています。 検索用フォームがあり、現在3つのコンボボックスがあってそれを選択して 「検索開始」をしています。 今回、その検索用フォームに「キーワード検索」というテキストボックスを1つ追加したいです。 検索の対応となるフィールドは2つあります。 「質問」「回答」 このどちらかのフィールドに「キーワード検索」した文字があればレコードを抽出してほしいです。 とりあえず検索結果を表示するためのクエリの「質問」「回答」の抽出条件に同様に Like "*" & [Forms]![F_検索フォーム]![キーワード] & "*"と入れてみました。 なんとなく違う気はするのですが、どうやってやれば良いのかイマイチわかりません。 またこの同じクエリに IIf(IsNull([Forms]![F_検索フォーム]![区分1cd]),True,[区分1cd]=[Forms]![F_検索フォーム]![区分1cd]) 抽出条件欄に「True」 これが3つのコンボボックス分あります。 何のためのフィールドでしょうか? また、私が追加する「キーワード検索」テキストボックスの分も作らないといけないものでしょうか? 素人質問で申し訳ありませんがアドバイスいただけたら助かります。 Accessのテキストは職場にたくさんあるのですが、私のレベルでは読んでも??ばかりです。 よろしくお願いします。

  • 【Access2000】レコードの抽出方法

     Access2000を使用してデータベースを作成していますが、抽出条件でつまずいています。  具体的には、  【1】選択クエリーAを基に作成したフォームA(単票形式でレコードを1件ずつ表示)があります。  【2】フォームAの中に単票形式でレポートを出力するマクロボタンが有。  【3】現在はマクロボタンを押すとパラメータで「データNo.?」と入力してもらう形になってレコードを1件抽出する形になっています。    ※画面上に表示されている「データNo.」フィールドの数値を入力してもらう形です。  質問についてですが、今のところはパラメータを入力してもらいレコードを抽出→レポートを出力していますが、パラメータを使わず、現在、フォーム上に表示されているレコード(表示されている1件)を抽出する方法はないかと壁にぶち当たっています。  言い換えれば、レポートを出力する際の元になるクエリの抽出条件で「現在、表示されているレコード」をどのように記述すればいいか、もし御存知の方がいらっしゃいましたら御教示お願いいたします。

  • Accessでの抽出について

    Accessでのクエリーでの抽出の方法を教えてください。 たとえば「12345678」といったIDをもたせた人のデータが日付ごとにいくつかレコードがある場合に、クエリーのID欄の抽出条件欄には、「12345678」と入力すれば、その人のデータのみが表示されると思います。 そこで、 (1)その中の日付から、最新のものから3つを抽出したい場合。 (2)その中の日付から、2番目に新しいものを抽出したい場合。 において、クエリーの抽出条件になんて書いたらよいのでしょうか? できましたら、(1)(2)それぞれお答えいただければ幸いです。 どうぞよろしくお願いいたします。

  • Accessの初心者です。

    Accessの初心者です。 みようみまねでデータベースを作成し、検索フォームを作るところで躓いています。 作成したデータベースは、以下の内容です。 ・書類管理テーブル(*分類番号、日付、書類名、備考) ・分類表テーブル(*分類番号、分類名、保管期間、差出元) ・・・日付は日時/時刻型、その他はすべてテキスト型です。 2つのテーブルを、*分類番号で結合させ、クエリでデータを作成し、[分類番号、分類名、保管期間、差出元、日付、書類名、備考]を表示させています。 このクエリから、(1)差出元、(2)保管期間、(3)日付(期間指定)、(4)書類名(部分一致)をキーとして検索をかけたいのですが、検索の方式を、(1)(必須)and(2)or(3)or(4)(場合によっては(1)and(2)and(3)or(4)のようにもなる)とするには、どうしたらよいのでしょうか。 以下は、失敗の軌跡です。 パラメータークエリの設定で、抽出条件のところに行を変えて条件を入れていっても、複数の条件を入れたときにうまく結果が出せませんでした。 本を見たりして、SQL文で抽出条件を入れてみたりもしたのですが、知識が不足していてうまく動かず・・・。 今度は、検索フォームを作成して上記のクエリを帳票形式で表示させ、ヘッダーの部分に検索のためのコンボボックスとテキスト入力領域を作成して、コマンドボタンで検索をかけるというのを、これまたみようみまねで作ってみたのですが・・・、これもうまく動かず、コードの記述も「??」だらけです。 初歩的なことですみません。 ご教示いただけると助かります。

  • Access 条件抽出クエリについて

    宜しくお願いします。 Accessの条件抽出クエリについて二つ質問があります。 1.抽出結果をフォームに出したいときはどうしたら? 正確には、パラメータ入力フォームを使用してパラメータを入力させ、 その結果をまたフォームに出力させたい、というものになります。 パラメータ入力フォームはできたのですが、ここで「OK」ボタンをクリックしたときに何かを指定してやればよいのでしょうか。 2.全てを対象としたい場合はどうしたら? 条件を入れたい項目が「取引先」「期間」と2つあり、どちらも指定したい場合は簡単にできるのですがどちらかだけを指定して、もう片方は全てを対象としたい場合はどうすればよいのでしょうか。 複数の内容で申し訳ございません。 宜しくおねがいします。(><)

専門家に質問してみよう