|
■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
|