プロが教える店舗&オフィスのセキュリティ対策術

いつも大変お世話になっております。
下記のコードをエクセル標準モジュール
に書いて実行しようと思いましたが、
思うように抽出できませんです。
strSQL = " "
strSQL = strSQL & " SELECT"
strSQL = strSQL & " IIF(商品 LIKE 'コーヒA豆*',REPLACE(商品,'コーヒー','紅茶')) AS 商品"
strSQL = strSQL & " FROM"
strSQL = strSQL & "[得意先_1$]"

遣りたいこと 商品 コーヒA豆
          コーヒB豆
          コーヒC豆
          コーヒD豆

コーヒA豆 A豆があれば 紅茶A豆 としたいのです。

" IIF(商品 LIKE 'コーヒA豆*',REPLACE(商品,'コーヒー','紅茶')) AS 商品"

まちがっていないような感じですが、
全て空白になってしまいます。
わかる方おしえてくれませんでしょうか

質問者からの補足コメント

  • うーん・・・

    有難うございます。
    しかし、わたしのやり方が悪いのか、
    空白になってしまいます。

    No.1の回答に寄せられた補足コメントです。 補足日時:2019/12/06 07:50
  • うーん・・・

    WHEN が認識できません。
    メッセージがでました。
    使用できないのでしょうか。

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/12/06 22:46

A 回答 (4件)

" IIF(商品 LIKE '✳︎A豆*',REPLACE(商品,'コーヒー','紅茶')) AS 商品"


か、
" IIF(商品 LIKE '✳︎A豆',REPLACE(商品,'コーヒー','紅茶')) AS 商品"
じゃないの?
この回答への補足あり
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2019/12/07 07:37

No.2の最初の方ですが。



>それに検索文字が『コーヒA豆』で置換対象が『コーヒー』では置換後が『紅茶ーA豆』になるけど?

は違いましたね。

>REPLACE(商品,'コーヒー','紅茶')

商品フィールドに合致する値(曖昧にしても)がないので置換はされないです。
    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2019/12/07 07:36

あと『A・B・C・D』は全角にしてますが、仮に半角を使われているなら修正してください。

    • good
    • 0
この回答へのお礼

有難うございます。

お礼日時:2019/12/07 07:37

IIFってAccessかSQLServer辺りじゃないと使えないかも。


それに検索文字が『コーヒA豆』で置換対象が『コーヒー』では置換後が『紅茶ーA豆』になるけど?

strSQL = strSQL & " SELECT CASE"
strSQL = strSQL & " WHEN 商品 LIKE 'コーヒA豆*' THEN REPLACE(商品,'コーヒ','紅茶')"
strSQL = strSQL & " ELSE 商品"
strSQL = strSQL & " END AS 商品"
strSQL = strSQL & " FROM"
strSQL = strSQL & "[得意先_1$]"

検証してない(Excelではね。先のSQLiteで検証)のでなんですが、もし上記で置換がされない場合は

'コーヒA豆*'



'コーヒA豆%'

に変更してみて下さい。(SQLiteでは%を用いるので)

CASE式で条件分岐をSQL文に任せる
https://qiita.com/sfp_waterwalker/items/acc7f95f …
この回答への補足あり
    • good
    • 0

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