2021年7月8日木曜日

accessのクエリで2つのフィールドの和や差をとるといった四則演算ができない現象を解決する物語

  accessのクエリで2つのフィールド(A,B)の和(A+B)や差(A-B)といった四則演算ができない現象に遭遇した。何故、たかが足し算や引き算が出来きんのかなぁ、何が原因なのだろうといろいろと試行錯誤した。計算ができない事態が起きている。その原因は何だろう。そして、突然、閃いた。クエリーで取ってきたフィールドの値がNullになっている箇所があり、それが故に計算できないのではないかと仮定してみた。何故、そんな都合よく、思いついたのか、わからない。

 兎も角、そこで、Nz(A,0)+Nz(B,0)1とかNz(A,0)-Nz(B,0)1という具合にNz関数を使用し、和や差をとってみた。そして、見事に計算できた。

 Nz(A,0)はフィールドAがNull以外ならば Aの値を、Nullならば0をセットする関数だ。つまり、Nullの代替値として0をセットし、Nullがあるが故に演算できないという事態を回避できる訳だ。

 逆に言えば、accessはNullが混じると四則演算といった単純な演算ができず、おまけに出来ないことを知らせるエラーメッセージさえも出さない(出せない)ヤツなので、自分で気が着くしかないということだ。    

 このNz関数が使いこなせるようになれば、access名人に向けて、「ワンランク昇格」だ。

 ここで、一息のコーナーは、ステーキの焼き方だ。

 1センチの肉を焼く時間は、片面1分30秒、もう片面は45秒。1センチ増すごとに+30秒だ。強火で、肉は常温に戻さない。フライパンに蓋をして、2分余熱で通す。