VB.NETからAccessのデータベース(accdb)に接続し、データを取得する方法を紹介していきます。

SQLServerからデータを取得する方法は、こちらで紹介しています。

それでは、さっそく見ていきましょう。

接続文字列を作成する

Accessのデータベースに接続するためには、接続文字列を作成しましょう。

下記画像のように、「プロジェクトを右クリック」→「プロパティ」をクリック→「設定」をクリックしてください。

この設定に接続文字列を作成していきます。

「名前」を任意で設定します。

「種類」に接続文字列を選択しましょう。

「値」を設定するために、「...」をクリック

「値」の「...」をクリックすると、「接続のプロパティ」ダイアログが表示されます。

データソースがSQLServerになっているので、ここをAccessに変更していきます。

「変更」ボタンをクリックしてください。

「データソースの変更」ダイアログが表示されたら、

「Microsoft Accessデータベースファイル」を選択しましょう。

続いて、「接続のプロパティ」のダイアログが表示されます。

「データベースファイル名」に対象のAccessファイルを設定しましょう。

「データベースへのログオン」ログイン情報があれば設定してください。

今回はないので空白です。

「テスト接続」をクリックして、OKであれば、「OK」ボタンをクリックしましょう。

このように、設定に接続文字列の情報を追加されていれば、完了です。

 

ACCESSデータベースのデータ取得

接続文字列が作成できたら、ACCESSのデータを取得していきましょう。

 

下記のようなデータベースを用意しています。

ファイル名:「hironimoDB」

テーブル名:「名前テーブル」

データ:3件作成しています。

 

VB.NETからデータ取得するソースを記載していきます。

Imports System.Data.OleDb

Public Class frmConnectAccessDB
    Private Sub frmConnectAccessDB_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'SQL作成
        Dim resultDt As New DataTable
        Dim sql = New System.Text.StringBuilder()
        sql.AppendLine("SELECT")
        sql.AppendLine("  *")
        sql.AppendLine("FROM 名前テーブル")

        'Access接続準備
        Dim command As New OleDbCommand
        Dim da As New OleDbDataAdapter
        Dim cnAccess As OleDbConnection = New OleDbConnection
        cnAccess.ConnectionString = My.Settings.AccessCon

        'Access接続開始
        cnAccess.Open()

        Try

            command.Connection = cnAccess
            command.CommandText = sql.ToString
            da.SelectCommand = command

            'SQL実行 結果をデータテーブルに格納
            da.Fill(resultDt)


        Catch ex As Exception
            Throw
        Finally
            command.Dispose()
            da.Dispose()
            cnAccess.Close()
        End Try

        'データテーブルの結果を表示
        For rowindex As Integer = 0 To resultDt.Rows.Count - 1
            For colindex As Integer = 0 To resultDt.Columns.Count - 1
                Console.Write(resultDt.Rows(rowindex).Item(colindex).ToString & " ")
            Next
            Console.WriteLine()
        Next

    End Sub
End Class

 

1行目:OleDbをインポートしておきましょう。

6~11行目:データを取得するためのSQLを作成 今回は、名前テーブルの全件を取得しています。

14~16行目:「OleCommand」と「OleDbDataAdapter」と「OleDbConnection」の3つの変数を宣言

17行目:先ほど作成した接続文字列を設定しています。(My.Settings.AccessCon) 

20行目:Accessのデータベースに接続

24~26行目:OleDBCommandとOleDbDataAdapterを設定

29行目:SQLの実行結果を、データテーブルに格納

41~46行目:結果の書き出し

 

結果

1 伊藤 きりん 150 
2 田中 ぞう 180 
3 鈴木 ねずみ 120 

 

Accessの情報が取得できていることを確認することができましたね。

さらにAccessのデータを登録、更新、削除をしたいという方は、こちらを参考にしてみてください。

まとめ

今回は、ACCESSのデータベースのデータを取得する方法を紹介しました。

Accessで作ったシステムとVB.NETのシステムを連携したいときなど、とても便利ですので是非参考にしてください。

 

VB.NETの記事一覧

おすすめの記事