• 締切済み

IIF文が使えない?

Access97にODBC接続して以下のSQL文を投げます。 MySql="select iif(code=1,"普通","特殊") as codename from テーブル" 通常ちゃんと「普通」か「特殊」の値が返ってくるのですが、WindowsXPのある環境下ではNULLが返ってくるのです。 どうもIIF文が効いていないようなのです。 おそらくODBCドライバのバージョンなのだと思うのですが、そんなことってあるんでしょうか? 実機がそばにないので確認できないのですが、「このバージョンのODBCドライバなら確かにそうなる」ということをご存知の方、教えていただけますか?

みんなの回答

  • tom777
  • ベストアンサー率77% (14/18)
回答No.3

別途、以下のコードテーブルを追加して リレートするのはどうでしょうか? =====コードテーブル===== Code,Naiyo 1,普通 2,特殊 ・ ・ ・ =====SQL文===== SELECT コードテーブル.Naiyo As codename FROM テーブル LEFT JOIN コードテーブル ON テーブル.Code = コードテーブル.Code; 以上

AnyBody
質問者

補足

教えていただきたいのは、IIFが正常に処理されないAccessのODBCドライバが存在するのか、そしてそのバージョンとは?ということです。 とりあえずIIFを使わないようSQL文を変更し、既に解消しているのですが、原因不明のままなのです。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

MDACのバージョンをあげてみるとか。

参考URL:
http://www.microsoft.com/japan/msdn/data/
  • i536
  • ベストアンサー率32% (75/231)
回答No.1

SQL文内でダブルクオテーションは使えないので、シングルクオーテーションに直せば に変更するといいと思います。 【例】 MySql="select iif(code=1,'普通','特殊') as codename from テーブル"

AnyBody
質問者

補足

すみません。質問文上のタイプミスです。 シングルクォーテーションでやってだめなのです。

関連するQ&A