• 締切済み

アクセスのマクロでの再検索

ACCESSで住所録を作っています。 入力のためにフォームを作成し、そのフォーム上にボタン「検索」「すべて表示」を作りたいと思っています。 マクロ  1.「検索」はアクションを「フィルタの実行」、フィルタは別にクエリで作成し、別に用意したテキストボックスに文字を入れてボタンを押すことによって検索できるように設定しました。  2.「すべて表示」は1つめのアクションが「全レコードの表示」、2つめのアクションが、検索文字を入れるテキストボックスへの「値の代入」で「""」を指定しました。 これでやってみたのですが、1回目の「検索」はうまく働くのですが、「すべて表示」して、2回目以降「検索」ボタンを押しても、1回目と同じ結果しか出てきません。 この2つのボタンが正しく働き、再検索ができるようにするにはどうすればよいのでしょうか? モジュールを作成するのでしょうか? ぜひご指導をお願いいたします!

  • emico
  • お礼率42% (139/326)

みんなの回答

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.4

参考にしてください。

参考URL:
http://www.accessclub.jp/
  • 78tch
  • ベストアンサー率31% (50/157)
回答No.3

#1です、たびたびすみません。 「フィルタの実行」でしたか、よく読んでいませんでした。 私のはリストを、フォームの検索文字を入れるテキストボックスの値を条件にするクエリーを使ってやる場合でした。 フィルタでやるっていうのはやったことないです。すみません。

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.2

すみません、マクロでは「再クエリ」ですね。 マクロで「再クエリ」、「コントロール名」にリストを指定してやって、「検索」ボタンに割り当ててやればよろしいかと思います。

emico
質問者

補足

次から次への質問でスミマセン。 マクロの「再クエリ」はあったのですが、「コントロール名」にリストを指定、とはどういうことですか? ご回答のほどお願いいたします。

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.1

3回目は検索文字を入れるテキストボックスへの「値の代入」は為されてますか? リクエリかなという気もしますがどうでしょう?

emico
質問者

補足

再検索するときには、もう一度検索文字を入れています。 先ほどは書き忘れていたのですが、何度もボタンを押さないと「すべて表示」と(2回目の)「検索」は働きません。 ところで、「リクエリ」とはどういうことでしょうか?

関連するQ&A

  • Accessマクロの抽出でどうしたらいいでしょうか?

    図のようにフォームには商品テーブルのフィールドを配置しています。 上のテキストボックスには、[商品グループ]の値と等しいレコードを抽出するよう入力します。 [抽出]ボタン:フィルタを実行 [解除]ボタン:フィルタを解除して、すべてのレコードを表示 それぞれクリック時のイベントに割り当てたマクロは以下です。 《マクロ名》《アクション/引数》  《値》  抽出    フィルタの実行         Where条件式     [商品グループ]=[Forms]![抽出]![txtキー]  解除    全レコードの表示        値の代入         アイテム      [txtキー]         式         NULL このようにしましたが、フィルタはフォームの起動時初回は出来ますが、[解除]ボタンを押して[抽出]ボタンを押すと再度の抽出はできません。 初回の1回だけは抽出できるんですけど・・・続けて抽出できるようにするにはどうしたらいいでしょうか?

  • ACCESSでの検索

    あいまい検索をしたいです。 【現状】 フォームデザインでテキストボックスを作り、検索ボタンを作成 ↓ 【したいこと】 マクロデザインで、「テキストボックスに文字列を入力すると、文字列を含むデータを抽出」 というまくろを組みたい。 [コード]=[Forms]![total]![コード入力]という、完全一致のものはここで教えていただいて作成できたのですが、もうひとつ、あいまい検索もしたいです。 あいまい検索は、「商品名」です。 宜しくお願いします。

  • アクセスである文字を含む検索

    ACCESS2000を使っています。 あるデータテーブル「発注書テーブル」があって、ここでは「(1)ID」「(2)顧客名(法人)」「(3)発注商品」「(4)納品済チェック」の4つフィールドがあるとします。 作業はフォームで行います。フォーム名は「発注書フォーム」。 「(2)顧客名」から検索をかけたくて、検索コマンドボタンをつくり、「検索フォーム」を発注書フォームとまったく同じ形態でつくり、そこにとべるようにしました。 「検索フォーム」には「検索」というテキストボックスを作ります。 「検索クエリ」というクエリを作り、発注書テーブルを素とし、すべてをデザインビューで表示するようにしました。 そして、「(2)顧客名」の抽出条件に[Forms]![検索フォーム]![検索]を入力します。 すると、「検索フォーム」の「検索」をコンボボックスにして、顧客名をすべて表示させ選択した場合は、「検索フォーム」では、選択した顧客の情報が表示されるようになりました。 が、しかし、「検索」をコンボボックスではなく、テキストボックスで、しかも顧客名の一部だけを入力したら、その文字を含むすべてのレコードを表示してほしいのです。 そこで、「検索クエリ」の「(2)顧客名」抽出条件にlike"*[Forms]![検索フォーム]![検索]*"と入力してみました。 そして「検索フォーム」の「検索」テキストボックス(非連結)に顧客名の一部を入力したところ、ぜんぜん絞りこみ抽出してくれません。 もちろん、クエリ上でも絞り込んでいない模様です。 どうしたら文字の一部からその文字を含む顧客名のレコードを全て抽出し、表示させることができるでしょうか? 細かくてすみませんが、かなり困ってます。 どうかわかる方、教えてください。 まったくちがう方法(別の手法)でもかまいません。 この説明でわからない部分がありましたら補足しますのできいてください。 よろしくお願いします。

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

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

  • ACCESSのマクロを使った抽出について

    質問をさせてください。 私は今、アクセス2002を使ったデータベース管理をしています。 そこで、データベースを検索方式でレポート形式表示しようと思い、フォームに抽出するテキストボックスとボタンを作りました。 その抽出するためのボタンに仕込んだマクロ「フォームを開く」のWHEREに [名前] Like "*" & [Forms]![フォーム]![テキストボックス] & "*" と入力して使っています。一応動きますが抽出できるのは1項目のみです。 このままでは使いにくいので、抽出する条件を複数指定して抽出をしたいと考えているのですが どうも上手く行きません。専門に扱っている本にも詳しくはのっていませんでした。 そこで ---------------------------------- 名前[テキストボックス1] 住所[テキストボックス2]         [ボタン] ---------------------------------- というようなフォームで、 レポート中の名前に○○を含み、 なおかつ住所に○○を含むデータを1度の検索で抽出するには どうしたら良いのでしょうか。 そして、もうひとつ。 同じようなものなのですが、コンボボックスを使って性別の抽出を行おうと思っているのですが 男性女性全てを抽出するためにはコンボボックスの文字が"すべて"では上手く動きません。 原因は"すべて"というワードを性別が含んでないからなのですが "すべて"を指定した時、全ての性別を抽出するにはまくロにどういった命令を書けば良いのでしょうか。 よろしくお願いします。

  • エクセルマクロで検索ボックスを作成する

    エクセル2010のマクロで検索ボックスを作成したいと考えています。 質問No.4072490を参照して作成しました。 ////////////////////////////////////////////////////////// 質問 エクセルのシートにテキストボックスとコマンドボタンを配置してシート上のデータを検索することは可能でしょうか?今現在はB列に、複数の文字データが入力してあるので、オートフィルタのオプションから「を含む」で検索してます。 イメージとしては、オートフィルタのオプションから「を含む」を選んでから検索しなくても予めシートに用意してあるテキストボックスに検索したい文字を入れてボタンを押すと、オートフィルタで検索したときと同じような結果が得られるようにしたいと思ってます。 例)  A    B    C     -------------- 1     血液型      2      A 3      B 4      O 5      AB 上のような表があったとして、テキストボックスにAと入力してボタンを押すとB2とB5が表示されるようにしたと思ってます。いい方法があればご教示願います。 回答 シートにテキストボックス1個、コマンドボタン2個を配置します。 これは出来ますね。 コマンドボタン1個目は検索ボタン、2個目は解除ボタンです。 ツール→マクロ→Visual Basic Editorを選択して シートに以下のコードを貼り付ける。 ------------------ ここから下 ---------------------- Option Explicit Private Sub CommandButton1_Click() Rows("1:1").Select Selection.AutoFilter Selection.AutoFilter Field:=2, Criteria1:="=*" & TextBox1.Value & "*", Operator:=xlAnd End Sub Private Sub CommandButton2_Click() Selection.AutoFilter End Sub ---------------- ここまで ------------------ エクセル2000です。 機能は「を含む」です。つまり文字列のどこにでもテキストボックスに入力した文字が含む行を表示します。 ////////////////////////////////////////////////////////// 上記を参照して検索ボックスを作成したところ、一回目の検索とフィルタ戻しは問題なくできましたが、2回目から検索ができません。 どこか変更した方が良いでしょうか。 追加でもう一つ質問です。 検索範囲がB列に限定されてしまいます。 シート状のすべてで検索することはできるでしょうか。

  • Accessフォームの検索画面作成について

    ご存知の方、教えてください。 ・会員情報の単票フォームを作成し、同フォームのフォームヘッダーにテキストボックスとボタンを作成しました。 ・テキストボックスにフリガナの頭文字を入力し、ボタンを押すと、該当する会員のレコードが表示されるようにしました。 (VBAのFindRecordで作成) ここからが分からないのですが・・・。 ・フリガナに同じ頭文字を持つレコードが複数ある場合、「次へ」というボタンを押すと上部レコードから順に次のレコードが表示されるようにしたいのです。また、同じ頭文字のレコードがない場合は「検索が終了しました」というメッセージを表示したいのです。 VBAでどのような記述をすればいいのか、教えてください。よろしくお願いします。

  • access 2000のマクロビルダで困っています

    access2000のマクロビルダでアドバイスお願いします。 とあるフォームで 「a」というテキストボックスがあります。 条件検索用のボックス「A」を設けて、「検索」というコマンドボタンを作成しました。 このボタンを マウスボタンクリックした時に、マクロビルダで、条件を設定し 抽出するというものです。 これは希望通りに抽出できたのですが、 次に、同じフォームで「b」というテキストボックスを設けて、条件検索用ボックスで「B」を作成しましたが、 これを、「検索」という一つのコマンドボタンで「a」と「b」2つの検索条件を満たす、リストをマクロビルダで作成したいのですが、 やり方がどう頑張っても分かりません。 できれば、マクロビルダで、もし無理なら、VBAでアドバイスを頂ければ大変ありがたいです。 どうかよろしくお願いします。

  • accessのフォーム上からブラウザの検索

    Access2000のフォーム上のテキストボックスに文字を入れて、横に配置したボタンを押すと、ブラウザが立ち上がってテキストボックスに入力した文字でgoogleの検索ができるような仕組みを作りたいと思っているのですが、可能でしょうか?

  • アクセスのフォームで期間検索するには?

    アクセスの検索フォームで、レコードを別フォームで表示して、表示したフォームでフィールド毎に検索しています。 日付の部分だけ、検索方法が分からず、なかなか出来ない状態です。 このフォームに、開始と終了のテキストボックスを設置しています。 ボタンを押して、開始と終了の期間のデータを表示出来ればと思います。 宜しくお願いします。

専門家に質問してみよう