SELECT 管理番号,IIf(instr(管理番号, "csd") = "",価格 = Int(価格 - (220 0.088 + 100) 0.95 / 0.934+0.5),価格 = Int(価格 - (220 0.088) 0.95 / 0.934+0.5), FROM データ WHERE (出品日 Between #2020/06/18# And #2020/07/23#)
adoRs.Open strSQL, adoCn 'SQLを実行して対象をRecordSetへ
もし、管理番号の中にCSDと「いう文字が含まれていなかったら
として処理したいのですが、どうしたらよいのでしょうか?
いろいろ試してみたのですが、行き詰ってしまいました。
アドバイスを頂けたら幸いです。
Cd = "管理番号,Int((価格 - IIf(管理番号 = 'csd-',19.36,119.36) 0.95) / 0.934)
と変更して、その場しのぎはできたのですが、
非常に汎用性が低いので、
正しい処理の仕方を、ご教授できたらと思います。
管理番号の中にCSDという文字が含まれていなかったらどうしたい?がないと回答も中途半端にしかできないですが
InStr 関数
基本、InStr()は結果が数値です
InStr(~)=""
という比較はしません。やるなら「0」と比較して次の形ですIIf(InStr(~)>0,あるとき(,ないとき))
IIf(InStr(~)=0,ないとき(,あるとき))
「
価格 = Int(価格 - (220 * 0.088 + 100) * 0.95 / 0.934+0.5)
」と「価格 = Int(価格 - (220 * 0.088) * 0.95 / 0.934+0.5)
」はどちらも(左辺)=(右辺)
の形になっています。比較の式なので結果は
True
かFalse
ですね。たぶん、フィールド名を「価格」としたいのだと思いますが、この場合は(式) AS 価格
のように、式の後にAS句をつなげてフィールド名を記述します
式の後にAS句をつなげてフィールド名を記述するのですか
試してみます。
InStr(~)=""と使っていました。
比較なので、>0 =0なのですね。
ありがとうございます。
連絡遅れました。
指摘していただいた箇所が、全部間違っていました。
正しく、計算してくれるようになりました。
ありがとうございました。