Quantcast
Channel: OKWAVE 最新質問(Visual Basic/257)【本日】
Viewing all articles
Browse latest Browse all 6510

コンボボックスの連動に関して

$
0
0
ある2つのコンボボックスを、1つ目の選択肢によって絞込みをかけたいと考えて います。 但し、いずれもデータベースからのデータをもとにコンボボックスを作成している為、 それをどうやって連動すれば良いかわかりません。 下記の記述にもあるように、選択されたタイミングで、他のコンボボックスを参照し、 それをSQLに反映させて、データを検索し、グリッドに表示というような事は可能ですが、 そもそも選択肢を絞り込むには、、、 下記の例では、実際にメーカー名というコンボボックスと部品名称というコンボボックス が、それぞれ選択された時に行っている動作です。 ここからどのように記述すれば良いか教えて下さい。 よろしくお願いします。 《記述例》 Private Sub CMB_メーカー名_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_メーカー名.SelectedIndexChanged Dim IN_CMB_メーカーコード As String Dim IN_CMB_部品コード As String Dim SQL3 As String Dim RowV1 As DataRowView = CType(Me.CMB_部品名称.SelectedItem, DataRowView) IN_CMB_部品コード = RowV1("部品コード") Dim RowV2 As DataRowView = CType(Me.CMB_メーカー名.SelectedItem, DataRowView) IN_CMB_メーカーコード = RowV2("メーカーコード") Try Dim dt = New DataTable Dim ds As New DataSet Dim Select_SQL As String Select_SQL = "SELECT 品目番号,社外名称,メーカー名 FROM T_品目マスタ" If IN_CMB_メーカーコード <> "000" Then SQL3 = " where メーカーコード = '" + IN_CMB_メーカーコード + "'" Select_SQL = String.Concat(Select_SQL, SQL3) If IN_CMB_部品コード <> "000" Then SQL3 = " and 部品コード = '" + IN_CMB_部品コード + "'" Select_SQL = String.Concat(Select_SQL, SQL3) End If Else If IN_CMB_部品コード <> "000" Then SQL3 = " where 部品コード = '" + IN_CMB_部品コード + "'" Select_SQL = String.Concat(Select_SQL, SQL3) End If End If Dim adp As New OracleDataAdapter(Select_SQL, Connection) ds.Clear() adp.Fill(ds, "表示_T") G_表示.DataSource = ds G_表示.DataMember = "表示_T" G_表示.Columns(0).Width = 100 G_表示.Columns(1).Width = 220 G_表示.Columns(2).Width = 180 Catch ex As Exception End Try End Sub Private Sub CMB_部品名称_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CMB_部品名称.SelectedIndexChanged Dim IN_CMB_メーカーコード As String Dim IN_CMB_部品コード As String Dim SQL3 As String Dim RowV3 As DataRowView = CType(Me.CMB_部品名称.SelectedItem, DataRowView) IN_CMB_部品コード = RowV3("部品コード") IN_CMB_メーカーコード = CMB_メーカー名.SelectedValue Try Dim dt = New DataTable Dim ds As New DataSet Dim Select_SQL As String Select_SQL = "SELECT 品目番号,社外名称,メーカー名 FROM T_品目マスタ" If IN_CMB_メーカーコード <> "000" Then SQL3 = " where メーカーコード = '" + IN_CMB_メーカーコード + "'" Select_SQL = String.Concat(Select_SQL, SQL3) If IN_CMB_部品コード <> "000" Then SQL3 = " and 部品コード = '" + IN_CMB_部品コード + "'" Select_SQL = String.Concat(Select_SQL, SQL3) End If Else If IN_CMB_部品コード <> "000" Then SQL3 = " where 部品コード = '" + IN_CMB_部品コード + "'" Select_SQL = String.Concat(Select_SQL, SQL3) End If End If Dim adp As New OracleDataAdapter(Select_SQL, Connection) ds.Clear() adp.Fill(ds, "表示_T") G_表示.DataSource = ds G_表示.DataMember = "表示_T" G_表示.Columns(0).Width = 100 G_表示.Columns(1).Width = 220 G_表示.Columns(2).Width = 180 Catch ex As Exception End Try End Sub

Viewing all articles
Browse latest Browse all 6510

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>