VB.NET DAOでのACCESS接続はDBEngineを宣言しよう

*本サイトはアフィリエイト広告を利用しています。

Visual BasicでACCESSデータベースに接続するにはいくつか方法がありますが、そのなかのひとつ「DAO」で接続すると楽ちんなんですよね。

ところがネットの情報で試しても、環境の違いからか、僕がへっぽこだからか、エラーが出てしまいます。

思いのほか試行錯誤を繰り返しました。

あちこちの情報から、やっとDAOでACCESSにつながったので備忘録を綴っておきます。

環境は「Visual Studio 2022」です。

スポンサーリンク
スポンサーリンク

COM参照設定

COM参照設定で「Microsoft Office 16.0 Access Database Engine Object Libraly」のチェックを忘れずに!!

スポンサーリンク

コーディングサンプル

DaoでACCESSデータベースに接続、テーブル一覧を出力する処理です。

Imports Microsoft.Office.Interop.Access

Public Class Form1
    Private Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click

        Dim de As Dao.DBEngine = New Dao.DBEngine
        Dim ws As Dao.Workspace = de.Workspaces(0)
        Dim db As Dao.Database = ws.OpenDatabase("d:サンプルDB.accdb")

        For Each t In db.TableDefs
            Debug.Print(t.name)
        Next t

        db.Close()
        ws.Close()
        de = Nothing


    End Sub
End Class

DBEngineオブジェクトを「de」という変数で宣言します。
WorkspacesオブジェクトはDBEngine.Workspace(0)でなく、de.Workspace(0)とします。

Importsも忘れずに!!

Imports Microsoft.Office.Interop.Access

僕の環境ではこれで動きましたが、どうでしょうか?

タイトルとURLをコピーしました