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
僕の環境ではこれで動きましたが、どうでしょうか?