C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.91972 の関連記事表示

<< 0 >>
■91972  Re[2]: コンボボックスによる絞り込み
□投稿者/ たかし -(2019/08/15(Thu) 15:44:43)
    No91945 (魔界の仮面弁士 さん) に返信
    > ■No91943 (たかし さん) に返信
    >>の2つのテーブルがありフォーム上にはComboBox1ととComboBox2があります。
    > 
    > Windows Forms アプリケーションを作成していて、
    > tbl_部署というのは DataTable の事で良いでしょうか。
    > 
    > 言語指定が無かったですが、comboBox1 ではなく ComboBox1 と書かれていたので、
    > とりあえず Visual Basic と仮定して書いてみます。
    > 
    > 
    > Public Class Form1
    >   Private ds As DataSet
    >   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    >     ds = CreateSample()
    > 
    >     ds.Relations.Add("rel_部署_社員",
    >              ds.Tables("tbl_部署").Columns("部署コード"),
    >              ds.Tables("tbl_社員").Columns("部署コード"))
    > 
    >     Me.BindingSource1.DataSource = ds
    >     Me.BindingSource1.DataMember = "tbl_部署"
    > 
    >     Me.BindingSource2.DataSource = Me.BindingSource1
    >     Me.BindingSource2.DataMember = "rel_部署_社員"
    > 
    >     ComboBox1.DataSource = Me.BindingSource1
    >     ComboBox1.ValueMember = "部署コード"
    >     ComboBox1.DisplayMember = "部署名"
    >     ComboBox2.DataSource = Me.BindingSource2
    >     ComboBox2.ValueMember = "社員コード"
    >     ComboBox2.DisplayMember = "社員名"
    >   End Sub
    > 
    >   Private Function CreateSample() As DataSet
    >     Dim ds As New DataSet("Sample") With {.CaseSensitive = True}
    >     Dim tbl1 As DataTable = ds.Tables.Add("tbl_部署")
    >     Dim tbl2 As DataTable = ds.Tables.Add("tbl_社員")
    > 
    >     tbl1.Columns.Add("部署コード", GetType(Decimal)).AllowDBNull = False
    >     tbl1.Columns.Add("部署名", GetType(String)).AllowDBNull = False
    >     tbl1.PrimaryKey = New DataColumn() {tbl1.Columns("部署コード")}
    > 
    >     tbl2.Columns.Add("社員コード", GetType(String)).AllowDBNull = False
    >     tbl2.Columns.Add("社員名", GetType(String)).AllowDBNull = False
    >     tbl2.Columns.Add("部署コード", GetType(Decimal)).AllowDBNull = True
    >     tbl2.PrimaryKey = New DataColumn() {tbl2.Columns("社員コード")}
    > 
    >     tbl1.Rows.Add(10000D, "総務部")
    >     tbl1.Rows.Add(10020D, "総務部総務課")
    >     tbl1.Rows.Add(12000D, "営業部")
    >     tbl1.Rows.Add(12010D, "営業部営業一課")
    > 
    >     tbl2.Rows.Add("AX0020", "金田 一太郎", 10000D)
    >     tbl2.Rows.Add("BY0112", "今西 欣治", 10020D)
    >     tbl2.Rows.Add("DX0987", "有馬 貴臣", 10020D)
    >     tbl2.Rows.Add("DX1024", "山口 六平太", 10020D)
    >     tbl2.Rows.Add("PN0132", "緒方 賢太", 12000D)
    >     tbl2.Rows.Add("PC1024", "片岡 孝夫", 12010D)
    >     tbl2.Rows.Add("PC2048", "久米 広明", 12010D)
    > 
    >     ds.AcceptChanges()
    >     Return ds
    >   End Function
    > End Class
    
    
    魔界の仮面弁士さま、お世話になります。
    ご返事が遅くなり申し訳ありません。
    先日お忙しい中、わざわざご提示いただいたコードにて絞り込み検索はできました。
    どうもありがとうございます。
    
    申し訳ないのですが、もう少し質問をさせてください。
    実は弊社の従業員は650人程おりまして部署の数も十数ほどあります。
    退職者や新入社員、また部署の異動なども頻繁に行なわれます。
    このようなことに対応するために、コード内の追加ではなく、
    ListRow(VBにはないようですが)を、テーブルあるいはビューから持ってくることは出来ないものでしょうか?
    ストアドプロシージャも試しましたが、WindowsFormからのパラメータ操作の仕方が難しすぎて分かりません。
    何よりExcelやAccessでは簡単に実現出来るこれらの機能の説明が、
    そもそもVB.NETではウェブのどこを探しても出てきません(私の探し方が悪いのかもしれませんが)。
    そのようなわけでもしかしてこれは不可能なのではと思い始めています。
    
    実はDataGridViewで目的に近いものが作成できることが分かったところなのですが、
    当初の目論見通りふたつのComboBoxだけで実行する方法が何とも諦めきれません。
    どうかもう少しお知恵をお借りできないでしょうか?
    よろしくお願いいたします。たかし
    
記事No.91943 のレス /過去ログ160より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -