vb.net

VB.net2017からoffce365のaccess2016に接続する方法

【お題】VB.net2017からoffce365のacccess.accdbに接続する方法

VB.net2017からちょっとだけDBを使いたかったのでaccess.accdbを使ってみた。
昔は簡単にDBが扱えて重宝したのだが・・・
いまでは32bit,64bit,ado,odbc,oledbと接続方法もいろいろある。

今回つかったのは
VB.net2017からoffce365のacccess.accdbにoledb接続したものだ。

環境
Windows10
VB.net2017
offce365・・・acccess.accdb(access2016形式)
oledb

接続方法

1.access.accdbを作成
2.Microsoft Access Database Engine 2016をダウンロード。
32bitと64bitがあるが32bit版をダウンロードしてインストール。
VB2017はAnyCPUで64bitだとおもっていたがどうも接続は32bitになるようだ。
3.VBテストアプリの作成

解説

1.access.accdbを作成

accessで接続するDBを作成。作成方法はご自由に。

2.Microsoft Access Database Engine 2016をダウンロード

office365でデフォルトでMicrosoft Access Database Engine 2016は入っていないようだ。
なのでインストールする。
最初64bit版をインストールしたのだがどうも32bitで接続されているようだ。

64bit版と32bit版をインストールするには一癖ある。

コマンドプロンプトから64bit版 C:\Users\PPPI\Downloads\AccessDatabaseEngine.exe
再起動する
コマンドプロンプトから32bit版 C:\Users\PPPI\Downloads\AccessDatabaseEngine.exe /quiet

/quiet がポイント 「インストールしました」みたいなメッセージも出ないですよ。

確認方法はODBCデータソース>ドライバーが追加されていればOK。

3.VBテストアプリの作成

appconfig


from1のloadイベント

Dim ConfigConnectionString As String = ConfigurationManager.ConnectionStrings("APP1.DB").ConnectionString

Using con As New OleDbConnection(ConfigConnectionString)
Using cmd As New OleDbCommand("SELECT * FROM UserTBL", con)
Dim Adaper As OleDbDataAdapter = New OleDbDataAdapter()
Dim dt As DataTable = New DataTable()
Adaper.SelectCommand = cmd
Adaper.Fill(dt)
DataGridView1.DataSource = dt
End Using
End Using

適当にエラー処理をする。

offce365だと Microsoft.ACE.OLEDB.16.0 です。




PR
VB6→VB.netマイグレーションやVB.netのWin10へのリビルドなども行っています。
既存業務の解析などの支援も行っています。
お問い合わせはこちら>お問い合わせ

-vb.net