重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

ExcelからADO経由でMDBにつないでいます。

SQLの中で文字列を更新したくてReplaceで置き換えようとした
のですが、Accessのモジュール上でのSQLでは問題なくReplace
が使えているのですが、Excelのマクロ上ではダメです。

この場合、どうしたらいいのでしょうか?

ヨロシコ願いします。

A 回答 (2件)

どうも安易なアドバイス?をしてしまったようです。


こちらでも確認できました。申し訳なく思っています。

調べてゆくと
Jet を使った SQL文では Replace関数は存在しない、との記述
http://www.accessclub.jp/bbs6/0007/das1585.html
の後半
MSDN辺りに、JET のSQLで使える関数の一覧があればと思うのですが・・

SQLインジェクション対策と思われる SandBox 適用
http://support.microsoft.com/default.aspx?scid=k …
こちらでも、キーの値を変えてみましたが効果なし
※PCの再起動は行っておりませんので十分な検証とは言えません。

ですので、私の手に余りそうです。
RecordSetを開いて、Loopで回しながらEdit・UpDateするしか思いつきません。
スッキリと出来ないもんですかねー
回答ではなくて怪答ですみません。

この回答への補足

ありがとうございます。そういうことなのですね。

その処理はAccess上ですることにします。

補足日時:2006/05/26 17:27
    • good
    • 0

どの様に「ダメ」なのか?



dim strSql as string
strsql= "あーたらこーたら" & replace(・・)" & "・・"
debub.print strsql 'で内容を確認
としといて
このstrSqlを渡してあげればどうでしょう?

この回答への補足

こんにちは。

pSQL = "UPDATE T_PC_DATA SET T_PC_DATA.Key2 = Replace(Key1,'Dynabook','DN')"
pSQL = pSQL & " WHERE (((T_PC_DATA.Key0)='TOSHIBA'));"

CN.Execute pSQL

が、SQLですが、、

エラー内容は・・・
'式に未定義関数 'Replace'があります。

で、

その関数自体が、存在しない感じなのです。

補足日時:2006/05/24 23:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!