Access DBのテーブル内容を取得してDataTable()に格納する

Accessデータベースの一つのテーブルの内容を取得して、DataTableとして格納する事により、プログラム内で使いやすくなる。

下記の例では、一つのテーブルから全データを取得し、そのままDataTableに格納している。そのためのメソッドとしては、DataAdapterを使い、そのアダプターにFillする事で実現できる。その結果をForm2のDataGridViewのデータソースとして設定することにより、内容を一覧表示できる。(table_nameに、取得したいテーブル名称を代入してこのプロシジャーを呼ぶ)

一旦、DataTableに格納してしまえば、Rowsメソッドを使って各レコードへアクセスしたり、各レコードの各フィールドへアクセスすることが非常に簡単に実現できる。

    Sub DBread(ByVal table_name As String)

        'SQL文
        Dim SQL_txt As String = "SELECT * FROM " & table_name

        'データアダプターを生成
        Dim adapter As New OleDb.OleDbDataAdapter(SQL_txt, DB_connection_text)

        'データの読み込み
        Dim Table1 As New DataTable()
        adapter.Fill(Table1)

        'データソースを設定してDataGridViewにデータを表示
        Dim BindingSource1 As New BindingSource
        BindingSource1.DataSource = Table1
        Form2.DataGridView1.DataSource = BindingSource1

        'Fomr2を表示
        Form2.Text = table_name 'タイトルをテーブル名に
        Form2.Show()
    End Sub

このアダプターを使ったデータベースへのアクセスでは、データベースのOPENを特に明示する必要は無い。

一つのDatabase全体に相当するもの(複数のテーブルの集合)は、DataSetであり、DataTableとは、Database内の一つのテーブルに相当する物であると考えれば分かりやすい。

DataTableから各レコードや各要素へアクセスするには、

テーブル内、i番目のレコードの "RxDateTime"というフィールドのデータ:
→ Table1.Rows(i)("RxDateTime")

ただし、順番はSelect文により指定されたOrderによる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です