プロフィール

Author:はるかわ しおん
なにか、新しいものを。
そして、楽しいものを。

FC2カウンター


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Excel2003 (ADO 経由) にて Access2003 のクエリ (Replace 含む) を実行すると未定義エラー

Excel2003 VBA (ADO 経由) より Access2003 (Jet) に対して SQL (Replace関数を含む) を実行すると

「式に未定義関数 'Replace' があります。」

というエラーが出ます。


同じ SQL を Access2003 上で選択クエリに書いて実行すると、これは実行できます。


今度は SQL ではなく、この選択クエリを Excel2003 VBA より実行すると、今度は

「SQLステートメントが正しくありません。DELETE、INSERT、PROCEDURE、SELECTまたはUPDATEを使用して下さい。」

というエラーが出ます (一字一句これと同じメッセージだったかは忘れた) 。


ぐぐると、Replace 関数は Access2000 では使えないうんぬんばかりなのですが、この問題はそうではありません。
理由が分かってしまえば問題でもなんでもないのですが、要するに・・・

Replace は、JET データベースエンジン自体が持つ関数ではないため使用できません。
(Access 経由であれば、VBA の Replace 関数を SQL 中で利用できるのですが)
  →http://bbs.wankuma.com/index.cgi?mode=al2&namber=16708 by 魔界の仮面弁士さま

・・・とのことです。


私はデータベース内の全角スペースを半角スペースに変えて SELECT したいために Replace 関数を用いていたのですが、あまりここに手間をかけるつもりもないので、データベースにデータをインポートする際に VBA で Replace をかけて逃げることにしました。



コメント

コメントの投稿

   管理者にだけ表示を許可する
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。