- ベストアンサー
Excel上のSQLでReplace関数
ExcelからADO経由でMDBにつないでいます。 SQLの中で文字列を更新したくてReplaceで置き換えようとした のですが、Accessのモジュール上でのSQLでは問題なくReplace が使えているのですが、Excelのマクロ上ではダメです。 この場合、どうしたらいいのでしょうか? ヨロシコ願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
どうも安易なアドバイス?をしてしまったようです。 こちらでも確認できました。申し訳なく思っています。 調べてゆくと Jet を使った SQL文では Replace関数は存在しない、との記述 http://www.accessclub.jp/bbs6/0007/das1585.html の後半 MSDN辺りに、JET のSQLで使える関数の一覧があればと思うのですが・・ SQLインジェクション対策と思われる SandBox 適用 http://support.microsoft.com/default.aspx?scid=kb;JA;239482 こちらでも、キーの値を変えてみましたが効果なし ※PCの再起動は行っておりませんので十分な検証とは言えません。 ですので、私の手に余りそうです。 RecordSetを開いて、Loopで回しながらEdit・UpDateするしか思いつきません。 スッキリと出来ないもんですかねー 回答ではなくて怪答ですみません。
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
どの様に「ダメ」なのか? 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'があります。 で、 その関数自体が、存在しない感じなのです。
補足
ありがとうございます。そういうことなのですね。 その処理はAccess上ですることにします。