タイトル : Re^4: Sqlserverからの差分入力 投稿日 : 2008/08/05(Tue) 13:28 投稿者 : Potechi
オショウ様回答ありがとうございました。 最後に今一度教えてください。 工程的にあっているかわかりませんが @テーブルAとテーブルBを比較しテーブルAにのみ存在するデータを取得 Private Sub 選択クエリ() Cn = New SqlConnection(・・・) Dim SQLCm As SqlCommand = Cn.CreateCommand Adapter = New SqlDataAdapter(SQLCm) 選択Table = New DataTable Dim sql As String sql = "SELECT tbl_A.* " sql = sql & "FROM tbl_A LEFT OUTER JOIN tbl_B ON tbl_A.コード = tbl_B.コード " sql = sql & "WHERE (((tbl_B.コード) Is Null))" SQLCm.CommandText = sql Adapter.Fill(選択Table) END SUB AテーブルAとテーブルBを比較しテーブルBにのみ存在するデータを取得 Private Sub 差分クエリ() Cn = New SqlConnection(・・・) Dim SQLCm As SqlCommand = Cn.CreateCommand Adapter = New SqlDataAdapter(SQLCm) 差分Table = New DataTable Dim sql As String sql = "SELECT tbl_B.* " sql = sql & "FROM tbl_B LEFT OUTER JOIN tbl_A ON tbl_B.コード = tbl_A.コード " sql = sql & "WHERE (((tbl_A.コード) Is Null))" SQLCm.CommandText = sql Adapter.Fill(差分Table) END SUB B両方のテーブルに含まれている場合はテーブルBの値を取得 Private Sub 更新クエリ() Cn = New SqlConnection(・・・) Dim SQLCm As SqlCommand = Cn.CreateCommand Adapter = New SqlDataAdapter(SQLCm) 更新Table = New DataTable Dim sql As String sql = "SELECT tbl_B.* " sql = sql & "FROM tbl_A INNER JOIN tbl_B ON tbl_A.コード = tbl_B.コード" SQLCm.CommandText = sql Adapter.Fill(更新Table) END SUB C上記で取得したデータを連結し表示 Private Sub cmd_Change_Click 選択Table.Merge(差分Table) 選択Table.Merge(更新Table) Me.dgv_MasteTable.DataSource = 選択Table END SUB C工程で最終的に出来た"選択Table"のデータをテーブルAに反映させればいいのかなとは思うのですがその方法がわかりません。 今のところ私の知る範囲ではがんばったつもりではいるのですがここでまたまた停滞してしまいました。 申し訳ありませんがご指導お願いいたします。 |