掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
2つのテーブルを同時に開けたいのですが、 (ID:141596)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
うまく説明できないので、コードを記述させてください。 Dim oConn As New System.Data.OleDb.OleDbConnection() Dim oCommand As New OleDbCommand() Dim oDataAdapter As New OleDbDataAdapter() Dim MayakuDataSet As New DataSet() Dim MoDataAdapter As New OleDbDataAdapter() Dim MMDataSet As New DataSet() Dim h As Integer Dim i As Integer Dim j As Integer Dim dfsworks As String Dim dfiworks As Integer Dim dcworks As String Dim roadData(0 To 3) As String Dim listData(0 To 3) As String Dim listLine As String Try 'DB接続文字列の設定 oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Mayaku\Data\Mayaku.mdb" 'コネクションの設定 oCommand.Connection = oConn 'DB接続を開く oConn.Open() 'SQL文の設定 Const strSelect As String = "SELECT * FROM dmaster ORDER BY name" oCommand.CommandText = strSelect 'データを取得する oDataAdapter.SelectCommand = oCommand oDataAdapter.Fill(MayakuDataSet, "dmaster") 'リストボックスに部門名を表示する設定 Me.ListBox1.Items.Clear() For i = 0 To MayakuDataSet.Tables("dmaster").Rows.Count - 1 daworks1 = MayakuDataSet.Tables("dmaster").Rows(i).Item("dname") dfiworks = CInt(Trim(MayakuDataSet.Tables("dmaster").Rows(i).Item("dfcount"))) dcworks = Trim(MayakuDataSet.Tables("dmaster").Rows(i).Item("dcode")) 'SQL文の設定 Const strSelect1 As String = "SELECT * FROM mdata WHERE dcode = @minID ORDER BY mainkey" oCommand.CommandText = strSelect1 oCommand.Parameters.Add(New OleDbParameter("@minID", OleDbType.Char, 20)) oCommand.Parameters("@minID").Value = Trim(dcworks) 'データを取得する MoDataAdapter.SelectCommand = oCommand MoDataAdapter.Fill(MMDataSet, "mdata") If MMDataSet.Tables("mdata").Rows.Count = 0 Then 'daworks2 = MMDataSet.Tables("mdata").Rows(i).Item("dname") oCommand.Clone() Else For j = 0 To MMDataSet.Tables("mdata").Rows.Count - 1 If Trim(MMDataSet.Tables("mdata").Rows(j).Item("skubun")) = "0" Then dfiworks = dfiworks - CInt(Trim(MMDataSet.Tables("mdata").Rows(i).Item("dsuu1"))) End If If Trim(MMDataSet.Tables("mdata").Rows(j).Item("skubun")) = "1" Then dfiworks = dfiworks + CInt(Trim(MMDataSet.Tables("mdata").Rows(i).Item("dsuu2"))) End If If Trim(MMDataSet.Tables("mdata").Rows(j).Item("skubun")) = "2" Then dfiworks = dfiworks - CInt(Trim(MMDataSet.Tables("mdata").Rows(i).Item("dsuu3"))) End If If Trim(MMDataSet.Tables("mdata").Rows(j).Item("skubun")) = "3" Then dfiworks = dfiworks + CInt(Trim(MMDataSet.Tables("mdata").Rows(i).Item("dsuu4"))) End If Next j oCommand.Clone() End If dfsworks = CStr(dfiworks) roadData(0) = Trim(MayakuDataSet.Tables("dmaster").Rows(i).Item("dcode")) roadData(1) = Trim(MayakuDataSet.Tables("dmaster").Rows(i).Item("dname")) roadData(2) = Trim(dfsworks) listData(0) = StrConv(LSet(Trim(roadData(0)), 13), VbStrConv.Narrow) listData(1) = StrConv(LSet(Trim(roadData(1)), 12), VbStrConv.Wide) listData(2) = StrConv(LSet(Trim(roadData(2)), 3), VbStrConv.Wide) listLine = listData(0) & listData(1) & listData(2) Me.ListBox1.Items.Add(listLine) Next i Catch oExcept As Exception '例外が発生した時の処理 MessageBox.Show(oExcept.Message, "例外発生") Finally 'DB接続を閉じる If Not oConn Is Nothing Then oConn.Close() End If End Try MMDataSet.Tables("mdata").Rows.Countの値が変なんです。 #DataSetは複数のDataTableを持つことができます。 とありますが、Table1とTable2はどのように区別をつければよいのでしょうか?ここでは、dmaster mdata のテーブルですけど。 2つのテーブルを操作したことがありません。 どうか、よろしくアドバイスをお願い申し上げます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.