私は Microsoft Access データベースを使用しています (この特定の状況ではその選択肢がないため、他のデータベースを使用するように勧めないでください)。Access データベース テーブルは 255 を超える列を持つことができないため、情報を 5 つの異なるテーブルに分割する垂直データベース パーティション手法を使用しています。各テーブルには 100 列あり、最初の列が主キーです。(ここでデータベースの正規化を提案しないでください)。次に、Excel ファイルにエクスポートできるように、これら 5 つのテーブルからデータを読み取る必要があります。
これを達成するために、次の手順を実行しましたが、複数のテーブルを組み合わせる方法がわかりませんでした。
これらの各テーブルを読み取り、別の DataTable を同じ DataSet に入れています。(Accessデータベースを使用しているため、すべてのテーブルからすべての列を選択することはできません)
これらの 5 つのテーブルで Relationship を宣言しました
次に、これらの DataTable を 1 つの DataTable に結合する必要があります。これは、合計 496 列になることを意味します。同じ情報なので、4つのテーブルから主キーを削除しています。どうすればいいですか?
Dim conn As OleDbConnection = New OleDbConnection Conn ="Connection string stuff goes" Dim FinalDS As New DataSet Dim DataSet1 As New DataSet Dim DataSet2 As New DataSet SQLstr1 = "SELECT * FROM Table1" SQLstr2 = "SELECT * FROM Table2" SQLstr3 = "SELECT * FROM Table3" SQLstr4 = "SELECT * FROM Table4" SQLstr5 = "SELECT * FROM Table5" Dim DA1 As New OleDb.OleDbDataAdapter(SQLstr1, cn) Dim DA2 As New OleDb.OleDbDataAdapter(SQLstr2, cn) Dim DA3 As New OleDb.OleDbDataAdapter(SQLstr3, cn) Dim DA4 As New OleDb.OleDbDataAdapter(SQLstr4, cn) Dim DA5 As New OleDb.OleDbDataAdapter(SQLstr5, cn) Try DA1.Fill(FinalDS, "Tl") DA2.Fill(FinalDS, "T2") DA3.Fill(FinalDS, "T3") DA4.Fill(FinalDS, "T4") DA5.Fill(FinalDS, "T5") Dim DataRelation1 As New DataRelation("R1", _ FinalDS.Tables("T1").Columns("ID"), _ FinalDS.Tables("T2").Columns("ID")) Dim DataRelation2 As New DataRelation("R2", _ FinalDS.Tables("T2").Columns("ID"), _ FinalDS.Tables("T3").Columns("ID")) Dim DataRelation3 As New DataRelation("R3", _ FinalDS.Tables("T3").Columns("ID"), _ FinalDS.Tables("T4").Columns("ID")) Dim DataRelation4 As New DataRelation("R4", _ FinalDS.Tables("T4").Columns("ID"), _ FinalDS.Tables("T5").Columns("ID")) FinalDS.Relations.Add(DataRelation1) FinalDS.Relations.Add(DataRelation2) FinalDS.Relations.Add(DataRelation3) FinalDS.Relations.Add(DataRelation4) FinalDS.Relations.Add(DataRelation5) 'Here I need to combine all these five DataTables into one DataTable 'So that I can use Export it to excel from that one Final DataTable instead of reading data from five different DataTables. 'My Exporting to excel logies goes here which simply supporse to reads data from final DataTable which has 496 columns. Catch ex As Exception MsgBox(ex.Message) End Try