Accessについて色々

OLEDBドライバがない

ExcelからAccess接続したいなと思ったら、
インストール可能な ISAM ドライバが見つかりませんでした。
と言われる。

Win (x86)で接続先はaccdbなので、
Microsoft.Ace.OLEDB.12.0
をつかいたいが、 (32bit/64bitあるはず)
odbcad32
で見てみると、mdbだけでaccdbのドライバがない…。

どうやら以下を読むと、2016/32bit(サブスクリプション)がクイック形式で入っていて、
ドライバが入らないということらしい…。

https://blogs.technet.microsoft.com/officesupportjp/2016/09/06/not_available_access_odbc_oledb_outside_c2r_applications/

https://blogs.technet.microsoft.com/officesupportjp/2016/09/08/howto_c2r_or_msi/

MySQLへのエクスポート

DSNを作っておくと自動でエクスポートできるとのこと。

http://dev.mysql.com/downloads/connector/odbc/
からmsiファイルでインストール。

コントロールパネル > 管理ツール > ODBCデータソース > ユーザー DSN > 追加

Accessを起動してテーブルデザインをエクスポート先のMySQLと合わせる。

テーブルを選択、右クリックからエクスポート > ODBC データソース

すでに存在しているテーブルに上書きはできない模様。

プロバイダについて

ADO の場合

Microsoft.JET.OLEDB.4.0
access 2002対応/2007非対応
x86専用だが、WOW64で動く。

Microsoft.ACE.OLEDB.12.0
access 2002/2007対応

参考にその他のプロバイダ

Provider=MSDAORA:Oracle
Provider=SQLOLEDB:SQL Server
Provider=MSDASQL:ODBC

VBAでの利用

DAO の場合

CreateObject(“DAO.DBEngine.36”) :2002対応/2007非対応
CreateObject(“DAO.DBEngine.120”) :2002/2007対応

VBAでの利用

取得のテスト