理不尽なAccess
Accessのお仕事をやっています。
Formのフィールドのコントロールソースに関するTipsを1つ。
例えばForm上に帳票形式のサブフォームがあって、合計値の計算をしたいとします。
テキストフィールド:ta コントロールソース:=Sum([a])
テキストフィールド:tb コントロールソース:=Sum([b])
テキストフィールド:tc コントロールソース:=[ta]-[tb]
これはうまく動作しません。フィールドの評価の順序によって値が確定しなかったりするので、当然かもしれません。
では、これはどうでしょう。
テキストフィールド:ta コントロールソース:=Sum([a])
テキストフィールド:tb コントロールソース:=Sum([b])
テキストフィールド:tc コントロールソース:=Sum([a])-Sum([b])
驚いたことに、これも値が表示されません。
正解は、
テキストフィールド:ta コントロールソース:=Sum([a])
テキストフィールド:tb コントロールソース:=Sum([b])
テキストフィールド:tc コントロールソース:=Sum([a]-[b])
です。なんだか理不尽な感じがするのですが、Accessの開発は細かいノウハウを知っているかどうかにかかっているので、試行錯誤の連続です。


コメントする