2009年05月15日

式に未定義関数 'nz' があります。/Microsoft Access

Microsoft Accessを選んだのが、そもそも間違い?(汗)

データベース・フィールドのNULL判定に使える
「Nz 関数」なるものが、Microsoft Accessには存在します。
「IsNull」じゃねーのかよと思いながら、まぁ、良いか
と使ったのが間違いでした・・・ orz orz
Accessの上では、ちゃんと走るんですが、ODBC経由で
アクセスすると「式に未定義関数 'nz' があります。」
とエラーメッセージダイアログが。
式に未定義関数 'nz' があります。

調べてみました。
マイクロソフトでは、この問題をこの資料の冒頭に記載した
マイクロソフト製品の問題として認識しています。


うっ、そんなアホな。
皆さん、Nz() 関数、EuroConvert() 関数、Eval() 関数とか
怪しい関数は使わないようにしましょう!!

例えば

Nz([フィールド名])
Nz([フィールド名], "")



IIf(IsNull([フィールド名]), "", [フィールド名])

と同じ動きをしますので、IIfに全て置き換えました。
ODBC経由でもIIfなら問題なしです。

でも、ここにも罠が。IIfも Access と心中するつもりなら
良いけど、IIf は SQL Serverでは使えないんですよね。
同じ会社の製品なのに、この一貫性の無さはどうした
ことでしょうか?
逆にSQL ServerやOracleで使えるCASE文がAccessでは
使えないし、もう知らないって感じでございます。
posted by ぽっぽファクトリー at 00:00 | Comment(0) | TrackBack(0) | ソフトウェア開発