いつもお世話になっております。・部署コードの2つのテーブルがありフォーム上にはComboBox1ととComboBox2があります。やりたいことは、ComboBox1でまず部署コードを選択します。するとComboBox2のドロップダウンリストにComboBox1で選択した部署の社員だけが表示されるようにすることです。2つのテーブルがありフォーム上にはComboBox1ととComboBox2があります。仮定して書いてみます。返信>>の2つのテーブルがありフォーム上にはComboBox1ととComboBox2があります。仮定して書いてみます。Class魔界の仮面弁士さま、お世話になります。ご返事が遅くなり申し訳ありません。先日お忙しい中、わざわざご提示いただいたコードにて絞り込み検索はできました。ありがとうございます。申し訳ないのですが、もう少し質問をさせてください。実は弊社の従業員は650人程おりまして部署の数も十数ほどあります。退職者や新入社員、また部署の異動なども頻繁に行なわれます。このようなことに対応するために、コード内の追加ではなく、ListRow(VBにはないようですが)を、テーブルあるいはビューから持ってくることは出来ないものでしょうか?ストアドプロシージャも試しましたが、WindowsFormからのパラメータ操作の仕方が難しすぎて分かりません。何よりExcelやAccessでは簡単に実現出来るこれらの機能の説明が、そもそもVB.NETではウェブのどこを探しても出てきません(私の探し方が悪いのかもしれませんが)。そのようなわけでもしかしてこれは不可能なのではと思い始めています。当初の目論見通りふたつのComboBoxだけで実行する方法が何とも諦めきれません。お知恵をお借りできないでしょうか?よろしくお願いいたします。ListRow(VBにはないようですが)を、テーブルあるいはビューから持ってくることは出来ないものでしょうか?それでも良いですよ。等を用いて、データベースに問い合わせて取得したデータでも構いません。データが保持されているという点が重要なのであって、その元データがどこから来たものであるのかは、特に問われません。実は弊社の従業員は650人程おりまして部署の数も十数ほどあります。それは在籍者の人数でしょうか。部署で絞り込んでから表示できた方が良いのでしょうね。全件ロードしておいても問題無いと思います。画面上に全部を表示することはなく、その中の一部だけが絞り込まれるのであれば。退職者や新入社員、また部署の異動なども頻繁に行なわれます。ストアドプロシージャも試しましたが、WindowsFormからのパラメータ操作の仕方が難しすぎて分かりません。具体的なサンプルは提示できません。(^^;それと、データベースからデータを取得する際の「タイミング」と「取得範囲」も考えておきましょう。時に、部署と社員情報を、すべてを事前に読み取っておく。用の社員データを、毎回データベースに問い合わせるようにする。一度読み取った部署のデータは、前回の取得結果を使うようにする。WebSurferさま、お世話様です。表示したいと言ってます?いかにもSQLサーバーです。ストアドプロシージャは以下のとおりです。ついては、どのように表現されるのでしょうか?そうなんです。そこが問題でまだ解決していないのです。在職者のデータだけを入力しています。部署の履歴を取ることも必要になると思いますが、それはまだ先の課題となります。現時点では上書き変更で対処しようと思っております。Accessのサブフォームのような機能がVBにもあるとよいのですが。>それと、データベースからデータを取得する際の「タイミング」と「取得範囲」も考えておきましょう。流れとしてはComboBox1で部署を選択し、ComboBox2で社員を選択、そして社員に関するすべてのデータを呼び出すという感じを考えています。絞り込むタイミングとしてはComboBox2のMouseDownイベントがいいのではないかと。イベントないしはCommandButtonクリックイベントです。当初の目論見通りふたつのComboBoxだけで実行する方法が何とも諦めきれません。2つでの実装を追求するより、上記のことを考えた方がよさそうだと思うのですが。そこが問題でまだ解決していないのです。ロードするような設計にすることがあります。「対象年月日」を範囲指定する設計にする事もあります。Accessのサブフォームのような機能がVBにもあるとよいのですが。コントロールぐらいですかね。やりようがありそうですが。データベースからデータを取得する際の「タイミング」と「取得範囲」も考えておきましょう。社員に関するすべてのデータを呼び出すという感じを考えています。あたりに置いといて、コンボボックスの選択値で読み込めば良いだけなので、そう難しくは無いはず。問題視しているのはその前。表示するための社員データ群を取得する際の話です。「どのイベント」で「どの範囲(WHERE条件)」を読み込んでくるのかを考えておくべきなのかな、と。時点のキャッシュデータのままです。アイテムを追加する方法では、タイミング的に間に合わないですし。一覧を再読み込みするためのリロードボタンを用意するという手もありますが、いずれにせよ、アプリケーション要件次第で変わってきますね。絞り込むタイミングとしてはComboBox2のMouseDownイベントがいいのではないかと。発生するとは限りませんので、それを前提として設計するのは避けたほうが良いでしょう。キーによってフォーカス移動してくることもありますよね。キーあるいは、[Alt]+[下]キーでドロップダウンされることもあります。CommandButtonクリックイベントです。上下キーやマウスホイールなどによる操作により何度も高速に呼ばれることがある点を考慮しておいてください。タイミングで行うというのは、パフォーマンス上の問題が生じます。社員情報を読み込みさせる方法を提案しておきます。ボタンがあると、同じ条件で「再読み込み」する場合にも便利ですし。読み取ってからそれを操作するということで案を紹介しておきます。Studioのデーターソース構成ウィザードを使えば簡単にできます。TableAdapterを作って、それを利用してアプリを作ると、以下のページの図のような構造のアプリが、ほとんど自分でコードを書くこと無しに作れます。分もかからずアプリを作れるはずです。プロパティに条件を設定します。tbl_社員に読み替えてチュートリアルと同様な形のアプリにするというのも検討の価値があると思います。WebSurferさま、お付き合いいただいてどうもありがとうございました。お二人からご紹介のあったサイトはゆっくり読んで勉強させていただきます。少なくとも「途方もなく難しい」ということが分かりました。ウエブを探しても記事がないというのがその何よりの証拠だと思います。絞り込むタイミングとしてはComboBox2のMouseDownイベントがいいのではないかと。発生するとは限りませんので、それを前提として>設計するのは避けたほうが良いでしょう。キーによってフォーカス移動してくることもありますよね。キーあるいは、[Alt]+[下]キーでドロップダウンされることもあります。確かに上級者の場合、マウスなしでTabKeyを使うことが多いかも知れませんね。なるとやはりComboBox2_Enterイベントでしょうかね?最後に「次善の策」として考えていたDataGridViewを使うのが手っ取り早いと理解いたしました。拙作のコードを書いて、お二人へのお礼とさせていただきたいと思います。社員名TextBoxを置きます。2ページ目にStd_社員DataGridViewとTbl_部署DataGridViewを置いて、それぞれにToolStripを付けました。以下がそのコードです。MsgBox("部門コードを入力してください。MsgBox("入力しました。08:04:21)追加質問です。魔界の仮面弁士さま、ご紹介に預かったDataRepeaterコントロールをさっそく試してみようと思い、https://blogs.msdn.microsoft.com/vbteamjp/2008/06/06/data-repeater-power-packs-beth-massi/より「VisualBasicPowerPacks3Setup」というものをダウンロードしてインストールしてみました。Packs」というフォルダが出来ました。これを呼び出して使ってみようと思い、VisualStudio2017を開いてみましたが、ツールボックスの中に「DataRepeaterコントロール」とおぼしきものが見当たりません。このコントロールは、どうやって呼び出すのでしょうか?ご教示願います。少なくとも「途方もなく難しい」ということが分かりました。プロパティに条件を設定すればできます。と私からレスしていますが、それらに対するフィードバックは無しですか?読んだ・読まなかった、理解できた・できなかった、役に立った・立たなかったぐらいはフィードバックとして返してもらっても良いと思うのですけど。09:13:00)WebSurferさま、大変に失礼しました。>読んだ・読まなかった、理解できた・できなかった、役に立った・立たなかったぐらいは>フィードバックとして返してもらっても良いと思うのですけど。ご紹介いただいた記事はすべて読ませていただきました。私自身VB.NET歴がまだ浅いもので、完全に理解することは出来ておりません。記事によっては私の開発環境であるVisualStudio2017の画面構成と違うものがあり、なかなか一筋縄では行かないというのが本音です。使って絞込み>http://surferonwww.info/BlogEngine/post/2011/07/17/Showing-records-selected-by-DropDownLists-into-GridView.aspx私のしたいことは、これとはちょっと違うと思います。それに対するお答えとして、92005にソースコードを書き込んだ積りでおりましたが、そう明確に申し上げなかったのが私のミスだったかも知れません、お詫び申し上げます。(C#)>https://code.msdn.microsoft.com/windowsdesktop/10-ADONET-C-cbfe7688Northwindをダウンロードしてセウ族を試みましたが「接続の追加」のところでエラーになります。接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。アプリケーションでのデータへの接続>https://docs.microsoft.com/ja-jp/previous-versions/wxt2cwcc(v=vs.120)実は私には「ADO.NET」の概念がイマイチ分かりません。ADO.NETに関して、最新で分かり易い解説サイトなどありましたらお教えいただければ大変に有り難いのですが。C#】Textboxから取得したstringで検索クエリ>https://teratail.com/questions/157732これらについては、ただいま勉強中です。参考にさせていただきたいと思っておりますが、ただ私にはまだC#のコードが分からないもので、できればVB.NETによる関連記事をご紹介お願いしたいと存じます。tbl_社員に読み替えて>チュートリアルと同様な形のアプリにするというのも検討の価値があると思います。以上、お答えになっているかどうか分かりませんがよろしくお願いいたします。プロパ>ティに条件を設定すればできます。具体的なソースコードを示していただきたいのですが・・・。オブジェクト名は、92005の私のコードのものを使ってください。返信とりあえず一番肝心だと自分が思う点をレスします。詳しくお教え願えないでしょうか?分からなかったら話を先に進める前に聞きましょう。ないと、話が噛み合わなくなります。アクセスしなくてもプログラムで操作してテーブルの内容の一覧の表示、編集・更新ができるようにするためのです。詳しくは以下の記事の「非接続型データアクセスの動作とそのアドバンテージ」のセクションを見てください。「図1」と「図2」だけでも見ればどのように使うことを目的としているかが分かると思います。回https://docs.microsoft.com/ja-jp/previous-versions/cc482903(v=msdn.10)まず、上記のことを理解してください。退職者や新入社員、また部署の異動なども頻繁に行なわれます。その頻度によってどのようにするかが変わってくるということです。