Access」タグアーカイブ

SQL EXCEPT, INTERSECTについて

Accessでは使えないためSQL Serverも利用した。

久しぶりに動かしたら
your sql server installation is either corrupt or has been tampered
というエラー。

ほとんど使わないので関連サービスを止めていた。

管理ツールのサービスから
SQL Server (SQLEXPRESS)
手動起動したら繋がった。

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での利用

取得のテスト