- ベストアンサー
データベースの絞り込み検索について
現在、sqlサーバーにてフォーム上にデータセットして、データを検索するシステムを作成中です。 データの更新や読込、変更等については、うまく動作しているのですが、検索・抽出についてうまくできません。 例えば、コンボボックスを2個配置して、絞り込み検索をかけようとするのですが、1個目でデータバインドされた項目を選択し、2個目では1個目に該当するデータのみを抽出させたいのです。 うまく伝えられないのですが、エクセルの機能でいえばオートフィルタのような動作です。 どのようにすれば良いのでしょうか?
- ganmo0122
- お礼率26% (7/26)
- Visual Basic
- 回答数2
- ありがとう数0
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
.netならば、なるたけローカルで処理するために、無条件のデータを保持しておいて、DataTable.SelectやDataView.RowFilterで条件付ける事もあります。 datatable.select http://msdn2.microsoft.com/ja-jp/library/system.data.datatable.select(VS.80).aspx DataView.RowFilter http://msdn2.microsoft.com/ja-jp/library/system.data.dataview.rowfilter(VS.80).aspx
その他の回答 (1)
どのようにデータを表示させているのかわかりませんが、 コンボボックスの値が変更されたときに、SQL文を作り直して再抽出を行えばよいと思います。
関連するQ&A
- データベースからの絞り込み検索とCF作成
MSアクセス2013で作成したデータベースがあります。 データベースのカラムには、複数のチェックボックスが含まれています。 絞り込み検索では、レコードのチェックボックスに1つでもチェックが入っている項目を除外したのち、 残ったレコードの”製品名”カラムを抽出したいと思っています。 テーブルはあるのですが、アクセスを利用した経験がほとんどなく、 コントロールフォームの作成方法や検索で該当したカラムのみを抽出する方法がわかりません。 ご指導頂けないでしょうか よろしくお願いします。
- 締切済み
- その他MS Office製品
- 【ACCESS】ApplyFilterでデータ絞込みをした時、該当データがないと、条件の表示がおかしくなる
ACCESSの一覧表示しているフォームで、検索条件を設定させ、その検索条件よりApplyFilteを使って、データ絞込みをしています。 データがある場合はうまく動作するのですが、該当データがないと、その後、検索条件を変更しても、検索条件のコンボボックスに値が表示されなくなります。 でも、認識はしているようで、デバッグで見ると値が入っているし、再度検索して、該当データがある場合は、また検索条件のコンボボックスが表示されるようになります。 何かつくりが悪いのでこのように動作するのでしょうか? もしくはデータが存在しない場合に何か別のことをするようにするなど、回避する方法があれば教えてください。 お願いします。
- ベストアンサー
- オフィス系ソフト
- Accessのコンボボックスの絞込み検索について教えて下さい
Accessで仕入伝票の入力作業をしています。 入力フォームの中のコンボボックスを開いて仕入先コードを入力しますが、仕入先が多いため別のテキストボックス(テキスト名=「読みがな」)に入力された読みがなを使って絞込みをします。方法はコンボボックスの集合ソースのクエリーの社名フリガナのフィールドに 「 like "*" & [forms]![F_入力票]![読みがな] & "*"」と抽出条件を入れました。 これでうまく絞り込みができましたが、同じ様にこれをサブフォームの中で行うとエラー(「読みがな」が存在しない)になってしまいます。 このエラーを回避してうまく絞り込みができる方法を教えて下さい。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセス2000で2回目の検索ができなくなります
アクセス2000で、サンプルを見ながらVBAをみようみまねで書いている超初心者です(難しいことは理解できていません)。次のようなところで行き詰っています。ヘルプお願いします。 一つのフォームに、(1)コンボボックス2つで、2段階の絞り込みをするクエリ(全体から「種類」フィールドのAを抽出し、さらに「名前」フィールドからBに絞り込む) と、(2)オプショングループのフレームの中で五十音で検索するトグルボタン(「かな」フィールドからあ行、か行等を抽出) のふたつのフィルタを設置しています。 コンボボックスのほうには、絞り込みの解除のボタン(ここでは「再表示」とします)を設置しており、クリック時のイベントに Private Sub コマンド1_click() me.コンボ1=null me.コンボ2=null DoCmd.Requery End Sub と記述し、「再表示」ボタンを押すことで、何度もやり直しができています。 しかし、五十音検索を一度でも行うと、その後はコンボボックスの絞り込みが動かなくなってしまうのです。 そこで、こちらにも「全表示」ボタンをつくって、以下のような記述をしてみたのですが、いずれもコンボボックスによる絞り込みを復活させることができないでいます。どこが足りないのかわかりません。 1) Private Sub コマンド2_click() me.フレーム1=null me.フレーム2=null DoCmd.Requery End Sub これでトグルの選択は解除されますが、コンボボックスは動きません。よって3行目以降が間違っていると思い、 2)上記の3行目以降を DoCmd.ShowAllRecords や Me.FilterOn=false など、またそれらとReQueryなどを組み合わせてみたり、 3)コンボボックスの方に1)や2)のような記述を追加してみたりと、いろいろトライしていますが、どうしてもコンボボックスの動作が復活しないのです。 いったんフォームを閉じるとまたできるようになるのですが・・・どうすればよいか、ご教示をお願いいたします。 ps.VBAのお作法はほとんどわかっていません。なるべくわかりやすくお願いいたします。 ちなみに、MSのサイトで[ACC2000]フィルタが設定されたフォームで2回目以降のフィルタが実行されない というヘルプは参照したのですが、意味が分かりませんでした(泣) また、なぜこの時代にアクセス2000なのか、ですが、いまだに会社のバージョンがこれなのです(苦笑)
- ベストアンサー
- その他MS Office製品
- ACCESSのフォームで、絞込み検索すると重複したレコードが増えてしま
ACCESSのフォームで、絞込み検索すると重複したレコードが増えてしまいます。 ACCESSのフォームで、コンボボックスを6ほど設置し、条件を絞り込んでデータを抽出するシステムを作成しました。 抽出自体は問題なく出来ているのですが、再クエリを実行した時、同じ抽出条件と結果が複数レコード表示されてしまいます。 調査した結果、フォームプロパティのレコードソースに設定していますクエリの実行結果の件数と同じ件数分増えてしまうようです。 そして、そのフォームをしばらく使用していますと、「これ以上テーブルを開くことができません。」とのメッセージが出てしまいます。 これも何か関係しているのでしょうか? いろいろと調べてみましたが、解決する事ができませんでした。ご指導、宜しくお願いします。
- 締切済み
- その他(プログラミング・開発)
- Access2000のコンボボックスで複数列の絞込み
1つのテーブルに「A」「B」「C」という列にデータが入力されていて、それを1つのコンボボックスで絞込みをやりたいと思っていますができません。 コンボボックスで選択したデータを「A」「B」「C」のすべてから検索し含まれる物全てを抽出したいです。 A B C 1 山 川 谷 2 山 水 川 3 川 谷 山 1つのコンボボックスで「谷」を選ぶと、1と3のレコードを抽出したいです。 良い方法は、ないでしょうか?
- ベストアンサー
- オフィス系ソフト
- ACCESSのフォーム操作で、パタメータ入力画面が出てしまします、絞込み
テーブル→クエリ→フォームで データを表示するロジックです グループ毎に絞込みする為に、 コンボboxを設け、そこにグプープを入れるように作りました。 そのコンボboxにデータを入れ、エンターキーを押した とたんに、 「パラメータ入力/me.コンボ1/[入力の窓]/OK、キャンセル」・・・と出ます コンボboxにはもうデータを入れてあり 「パラメータ入力」の窓は出したくないのですが、 設定した情報は フォームのプロパティのフィルターに 営業所No = [コンボ1] と入れました また、コンボ1のプロパティに更新後処理に 下記のコードを入れました Me.filter = "営業所No = [Me].[コンボ1]" 以上でわかるでしょうか よろしくおねがいします
- ベストアンサー
- オフィス系ソフト
- ACCESS コンボボックスの絞込みについて
タイトルの件ですが、 テーブルに作成したデータを使って、 フォームのコンボボックス2つに絞込み入力ができるようにしました。 (例1) (例2) コンボボックス1: 北海道 東京 コンボボックス2: 札幌市 中野区 本来、そのテーブルにあるデータを取ってくるのかと思いますが、 新データが発生した場合、コンボボックスに直接入力をしたいのです。 (例3) コンボボックス1: アメリカ コンボボックス2: カリフォルニア州 それは可能でしょうか? ちなみにコンボボックス1,2ともプロパティイで「入力チェック」を「いいえ」にすることができませんでした。 どうしたらいいのでしょうか。 教えてください!
- ベストアンサー
- オフィス系ソフト
- Accessでデータベースを作っています。
Accessでデータベースを作っています。 先日、こちらで質問をさせていただいて、クエリで複数のフィールドを対象にデータを検索する ことはクリアできました。 ありがとうございました。 ご指導に基づき、4つのフィールド(仮にA,B,C,D)について、クエリの抽出条件に Like "*" & [Aを入力] & "*" Like "*" & [Bを入力] & "*" ・・・ とそれぞれ設定してパラメータ入力を求め、4つの条件すべて、または一部のみ設定して検索し、 正しい検索結果が得られました。 今度は、検索用のフォームを作成し、フォームで入力した条件をクエリに送って、同じ結果を 得たいと思うのですが、以下の方法では正しい検索結果が出てきません。 ・フォームに検索用のボックスをA~Dまで4つ作成(ひとつはコンボボックス、あとはテキスト) ・クエリの抽出条件に、それぞれ以下を入力 Like "*" & [Forms]![Q_form(作成したフォームの名前)]! [A(それぞれの検索ボックスの名前)] & "*" ・フォームに「クエリの実行」のコマンドボタンを配置 パラメータで入力する代わりにフォームを使いたい、というものなのですが(パラメータ入力 よりも、コンボボックスを使って値を選ぶ方が検索する人には使いやすいかと思って)、どうしたら うまいこといきますでしょうか。。 教えてください。
- 締切済み
- オフィス系ソフト