• ベストアンサー
  • 困ってます

Accessであいまい検索するフォームをつくってみたんですが?

Accessの初心者です。 本などをみながらあいまい検索ができるようなフォームをつくってみましたがフォームを開いた時、全レコードが表示されてしまいます。 クエリーの抽出条件はLike "*" & Forms!フォーム1!テキスト0 & "*"にしてテキストボックスプロパティの更新後処理でDoCmd.Requeryとしました。(意味がよくわからないんですけど) フォームを開いた時やテキストボックスになにも入力されていない時、全レコードが表示されないようにするにはどうすればいいのでしょうか? よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1988
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.2

すいません、ちょっと勘違いをしてました。 「全レコードが表示されないようにする」でしたね。 ちょっと調べてみましたが、Requeryよりもフィルタを利用する方が良いようです。 更新後処理を Dim jyouken As String If IsNull(Me.ActiveControl) Then   jyouken = "[フィールド名] Is Null" Else   jyouken = "[フィールド名] Like '*" & Me.ActiveControl & "*'" End If Me.Filter = jyouken Me.FilterOn = True とします。 前提条件としては、あいまい検索するフィールドは必ず入力されていると言うことです。 ([フィールド名]の部分はご自分の環境に合わせてください。)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お手数おかけします。 あいまい検索は完璧にできました。 フォームに全件表示されてしまう件ですが、途中途中はできるようになったのですが、新たにフォームを開いた時は全件表示になってしまいます。 もう1度やり直してみます。 何度もすいません、勉強になります。

関連するQ&A

  • access クエリ 検索フォームの作り方

    よろしくお願いします。 やりたいこと: フォーム上で、テキストボックスに入力した値を検索して表示したい。 本やウェブで調べて、なんとか一度はやっと出来たのですが、 誤って何かを変更してしまい、使えなくなってしまいました。 今となってはどの資料を見て作れたのかわからなくなりました。 やったこと: クエリ :クエリA   条件にforms!フォームA!txt0を入力 フォーム:フォームA ヘッダーに非連結のテキストボックスtxt0を作成 txt0の更新後処理:docmd.requeryを入力 しかし、txt0に入力しても検索されません。 フォームのプロパティのレコードソース欄にクエリAを選択するようですが、 選択するクエリ名が表示されないので、クエリ名を入力しましたがダメでした。 どこか間違っているのでしょうか。VBAまでは勉強できないので上記範囲内でお願いします!

  • access 検索について教えてください。

    フォームにテキストボックス(テキスト0)を配置し、県名を入力するとこのフォーム(検索フォーム)にレコード内容が表示されるようにしました。クエリの県名の抽出条件にform![検索フォーム]![テキスト0]とし、検索フォームの更新後処理に Private Sub テキスト0_AfterUpdate() DoCmd.Requery End Sub と記載し利用しています。 ここで質問ですが、抽出条件に[me].[テキスト0]と記載し、上記内容のコードを記載しましたが、検索フォームが表示できません。 どこがいけないのでしょうか? お願いします。

  • フォーム上での絞り込みについて

    フォーム上での絞り込みについて 皆様、こんにちは。アクセス初心者です。 フォーム上での絞り込みを設定したいのですが、絞り込みのテキストボックスに データを入力してもQueryのデータが反映されません。 (1)クエリに[forms]![フォーム名]![絞り込みのテキストボックス名]と入力 (2)フォームのレコードソースへ上記のクエリ名、かつ絞り込みのテキストの更新後処理 DoCmd.Requery と記載しています。 この設定で他に何が足りないのかわからずここ何日か前に進めません。 大変初歩的な質問で恐れ入りますが、どなたかご教示いただけませんでしょうか? 何卒、よろしくお願いいたします。

その他の回答 (1)

  • 回答No.1

IFを使って条件分岐じゃいけませんか? たとえば IF IsNull(Forms!フォーム1!テキスト0) then Exit Sub End IF DoCmd.Requery という感じで・・・

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。 テキストボックスの更新後処理のところに入力してみました。(あってます?) あいまい検索はできるんですがフォームを開いた時、全レコード表示されてしまいました。 入力ミスがあったかもしれないので明日また挑戦してみます。 どうもありがとうございました。

関連するQ&A

  • ACCESS2003でクエリを使った検索フォームを作っています。

    ACCESS2003でクエリを使った検索フォームを作っています。 クエリは以下の様になっています。 ----------  番号   タイプ   品名  1111   AA     商品1  2222   AA     しょうひん2  3333   BB     商品しょうひん3 ---------- 品名のフィールドの抽出条件に ---------- Like "*" & [Forms]![品名検索フォーム]![品名検索] & "*" ---------- と入れています。 品名検索フォームは帳票タイプで、フォームヘッダーにテキストボックスを設け 「品名検索」と名前をつけています。 テキストボックスに【商品】と入力すれば番号1111と3333が、【しょうひん】と入力すれば 番号2222と3333が抽出されるように設定し、ここはうまく動きました。 ただ、このフォームを開いた際、テキストボックスは空欄になっているため、全レコードが 表示されてしまいます。テキストボックスが空欄の際は、何も表示したくないのですが どこを触ればいいのでしょうか? どうかよろしくお願いいたします。

  • コンボボックスの抽出条件のLikeについて

    フォーム内のコンボボックス処理について 現在ACCESS2002でDBを構築しております。 初心者です。 フォーム内でテキストボックスから値【a】をもらい、その【a】を抽出条件として抽出結果を コンボボックスに表示したいと考えております。 ※like関数を使用 Private Sub テキスト1_AfterUpdate() DoCmd.Requery "コンボ1" Me!テキスト1.Requery End Sub コンボボックスの値集合ソースの抽出条件で ((テーブル.カラム) like "'*" & Forms!フォーム!テキスト1 & "*'") 上記で指定したのですが、何も抽出されません。 イコールで下記を実行すると値は抽出されます。 ((テーブル.カラム) = Forms!フォーム!テキスト1 ) LIKE関数の使い方が悪いのでしょうか。 お手数ですが、ご教授願います。

  • フォーム上での絞り込みについて

    フォーム上での絞り込みについて 皆様、こんにちは。アクセス初心者です。 以前質問させていただいたのですが、やはり一人で解決できない為、再度皆さんの力をお借りしたいと思います。 フォーム上での絞り込みを設定したいのですが、絞り込みのテキストボックスに データを入力してもQueryのデータが反映されません。 Queryにはフォームのテキストボックスへ入力したデータが反映していますが、Queryのデータがフォームへ反映しません。たまに反映されたかと思うと何かの拍子に又反映されなくなります。 (1)クエリに[forms]![フォーム名]![絞り込みのテキストボックス名]と入力 (2)フォームのレコードソースへ上記のクエリ名、かつ絞り込みのテキストの更新後処理 DoCmd.Requery と記載しています。 大変初歩的な質問で恐れ入りますが、どなたかご教示いただけませんでしょうか? 何卒、よろしくお願いいたします。

  • ACCESSの検索について

    過去ログを見たのですが、該当するものが見つからなかったので質問させてください。 すでに入力してあるデータの生年月日から特定の月に誕生日を迎える人を検索したいと思っております。 クエリの検索条件で Like "*" & [Forms]![誕生日検索2]![テキスト0] & "*" とし、フォームの誕生日検索2のテキスト0に入力されたものを抽出したいのですが、クエリで開いてパラメータの入力のところでは「2008/07」とすれば今年の7月に誕生日を迎える人が抽出できるのに、フォームのテキスト0に同じように入力してもデータが抽出されません。 ちなみにフォームのイベントプロシージャは Private Sub コマンド2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) DoCmd.OpenQuery "誕生日検索" End Sub Private Sub テキスト0_AfterUpdate() DoCmd.Requery End Sub としております。 どこをどう直せばうまく抽出できるようになるのでしょうか?

  • Accessクエリの抽出条件にフォームから挿入する方法

    Accessフォームのテキストボックスに入力されたデータを、クエリの抽出条件に挿入したいのですが、その際部分一致で検索したいため、抽出条件にLike "*[Forms]![フォーム名]![テキストボックス名]*"と記述したのですがうまく行きません。 どのように記述すれば部分一致で検索できるのかお教えください。

  • ACCESSでフォームを作ってるのですが

    宜しくお願いします。 ACCESSのフォームでクエリのフィールドを テキストボックスに表示させたいのですが、 テキストボックスのプロパティのどこを いじればよいのでしょうか? 教えてください。

  • Accessでのデータ更新のキャンセルと再クエリについて。

    初心者で申し訳ありません。 (1)Accessで、フォームを作り簡単なデータを管理しています。そこで、入力フォームを開き、データを追加し ているときにキャンセルをしたいと思った場合はどの ようなイベントを記述すればよろしいでしょうか。  (入力したデータを更新したくない) docmd.cancel..を記述しても、結局テーブルに追加 されてしまっているのですが・・・。 (2) ★docmd.requery "○○○"    ★Forms![フォーム名].requery ・・・上記のような再クエリの方法を目にしてるのですが、上と下の違いはあるのでしょうか?この場合はこう・・・とかあるのでしょうか? よきアドバイスお願いいたします。

  • Access2003 検索用フォームでの検索がうまくいかない

    Access2003 検索用フォームでの検索がうまくいかない とある、テーブルを参照するフォームを作成。 そしてテキストbokを設けて、各項目毎にキーワードを指定してデータを抽出できるようにしたいのですが、 どうもうまくいきません。 検索は出来ているのですが、全部ひっかからないのです。 例えば ID という項目を検索するbox に"1"を入力して ID=1の全データを抽出しようとすると、一部検索にかかってこないものがある という具合です。 テーブルに入力されている数字や文字が本当に一致しているかどうかも調べましたが確かに一致しています。 実際、テーブルを開いて ctr+f で検索すると全てひっかかります。 何が原因なのでしょうか??? 私の作った手順は以下のとおりです。 テーブル作成(エクセルからインポート) ※空白の欄もあります フォーム新規作成でフォーム作成 フォーム上にテキストbox作成 クエリ作成 (Like "*" & [Forms]![フォーム名]![テキストbox名] & "*" ) マクロ作成⇒フィルタ実行/上の手順で作ったクエリを登録 マクロをフォーム上へドロップ およそこのような手順です。

  • ACCESSのフォームで、絞込み検索すると重複したレコードが増えてしま

    ACCESSのフォームで、絞込み検索すると重複したレコードが増えてしまいます。 ACCESSのフォームで、コンボボックスを6ほど設置し、条件を絞り込んでデータを抽出するシステムを作成しました。 抽出自体は問題なく出来ているのですが、再クエリを実行した時、同じ抽出条件と結果が複数レコード表示されてしまいます。 調査した結果、フォームプロパティのレコードソースに設定していますクエリの実行結果の件数と同じ件数分増えてしまうようです。 そして、そのフォームをしばらく使用していますと、「これ以上テーブルを開くことができません。」とのメッセージが出てしまいます。 これも何か関係しているのでしょうか? いろいろと調べてみましたが、解決する事ができませんでした。ご指導、宜しくお願いします。

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

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