misc.log

日常茶飯事とお仕事と

Accessで関数が使えない

Access 2003のVBAを使ったアプリケーションで、Accessファイル(拡張子.mdb)を別のPCに移動すると下記のようなエラーが出るという現象が…。

  • エラー番号: -2147217900
  • メッセージ「クエリ式 〜 の この関数は式では使用できません。」

問題の処理では、ADO経由のDBアクセスでSQL文を投げていたのですが、その中で使っているMid関数が引っかかったようです。


Access 2000であればSR(サービスリリース)の未適用による問題なども過去にあったようなのですが、今回の環境はAccess 2003、ちょっと違います。そこで下記のKBを参考にして、参照設定をやりなおしてみました。

[OFF2000]参照先が存在しないファイルで VBA がエラーになる
http://support.microsoft.com/default.aspx?scid=kb;ja;208218

設定のやりなおしとは、問題が発生しているPCでVisual Basic Editorを開き、[ツール]-[参照]で表示されるダイアログから「Microsoft Office 11.0 Object Library」の参照を一旦外し、OKボタンで閉じたのち再度ダイアログを開いて参照をやり直すというものです。

これで、問題が出ていた別PCでも現象は出なくなりましたし、問題が出ていないPCにファイルを持ってきても問題無く利用できました。


おそらく、問題が出ないPCにはVisual Studio 6.0などが入っていたのに対し、問題が出たPCには入っていなかったことからライブラリの所在等が微妙に違っていたのではないかと推測していますが、定かではありません。