PythonからDAO.Engine.120がDispatchできない。
はじめに本記事は、検証できていない記事であることをご了承して頂いた上で参考にしてみてください。
DAO.Engine.120はDAOオブジェクトのオブジェクト名でVBAなどからデータベースにアクセスする時に使われるオブジェクト名です。
このオブジェクトをただ単にPythonのWin32Clientから呼び出そうとすると、ほぼエラーが発生します。
インターネットでAccessデータベースファイルにアクセスするための方法としてCreateObjectでADODBを呼び出す記事がほとんどですが、ADODBオブジェクトよりDAOオブジェクトのほうが単純に使えるので便利です。
はじめは、私もADODBしか使えなかったのでうがある日突然使えるようになっていたことに気づいたためこの記事を書いています。
やったことをよーく思い出してみると・・・
ADODBでもコネクションを作ってAccessのデータベースファイル(.accdb)にアクセスしようとするとODBCドライバがないと言われるためにAccessのODBCドライバをインストールしたことを思い出しました。
おそらくこのドライバーを入れた時点で、DAOオブジェクトにアクセスできるようになった可能性が強いです。
なのでAccess用のODBCドライバを入れればアクセスできる!
んじゃないかなと思います。
検証できたらまたご報告します。
おそらくVBScriptでDAOにアクセスできない場合もこれが原因かもしれません。