- ベストアンサー
アクセス2000 コントロールソース 式について
=IIf([NO]>2 And [NO]<8,1 =IIf([NO]>2 And [NO]<=7,1 前任者が作成した式ですが、下側の式が入っていました。 =を入れるだけ、めんどうだと思うのですが、なぜ 上側の式にしなかったのでしょうか? 超初心アクセス使用者で、関数もまったく分からずで仕事をしながら勉強しているので このようなことさえ、疑問に感じてしまいます。 ご教授よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ご質問の内容から、 何故そう記述したのか、まずは前任者でなければ分からないと思います。 #1さんの回答がすべてであるように思います。 まだ閉じられていない、ということは望んでいたものではなかったという事? 違う観点から書いてみます。 分からなければ、推測していくことになると思います。 以下、私の手順(さわりだけ)になりますが、参考になるかどうか・・・・ ・同じような記述が他にあるか探します。 なかったら---- 前任者の記述スタイルと割り切ります。 あったら---- 例えば、 =IIf([NO]>7 And [NO]<=12,2・・・・ とかがあったら、「7」は何か意味を持つ数値であると注意します。 =IIf([NO]>=8 And [NO]<=12,2・・・・ とかなら、「7」「8」は何か意味を持つ数値であると注意します。 ・[NO]の取りうる値を調べます 値が例えば、1 ~ 7 であったら、[NO]<8 とは記述しないと思います。 値の最大が「7」である意味を持つ [NO]<=7 で記述すると思います。 運良く仕様書があるのなら、仕様書で[NO]の値を調べます。 特に「7」が意味をもつものでないなら、前任者の記述スタイルと割り切ります。 また、仕様書と実物が同じなのか確認していきます。 [NO]が 1 ~ 100 の値なら・・・・とした場合、 [NO]>=1 And [NO]<=100 って書く [NO]>0 And [NO]<101 って書く = のどこが面倒なのかわかりませんが、私なら意味のある 100 を使って記述します。 10代、20代を判別する時 1) [歳]>9 And [歳]<20 / [歳]>19 And [歳]<30 2) [歳]>=10 And [歳]<=19 / [歳]>=20 And [歳]<=29 3) [歳]>=10 And [歳]<20 / [歳]>=20 And [歳]<30 など、書き方はいろいろありますが、 判別部分だけを見て、何をしているか、どれがわかりやすいでしょうか。 多分、1) の書き方はないと思います。私なら 3) を記述すると思います。 他の人が記述したものを読む時には、面倒云々の先入観は抜きにして、 何故そう記述したのか・・・・自分なりに裏付けを取るようにします。 それが出来ないと、まともな機能追加/修正は無理だと思います。 また、既に動いている物への修正は必要最小限にとどめます。 =IIf([NO]>2 And [NO]<=7,1 は、 =IIf([NO]>2 And [NO]<8,1 でもやっていることは同じだから・・・・書き換える・・・ これは、ありえません。 なぜなら、この書き方がここだけとは思えないから・・・・・ だから探す (他のフォーム・・・レポート・・・・様々なクエリ・・・はたまた VBA 内・・・・) (いや、もっとあるかも・・・・マクロ・・・条件付き書式・・・・) 書き方を変えただけと言っても、修正したらテストするのは必須・・・・ どれだけの範囲をテストしなおさなければならないのか・・・・・ 私は嫌です。 また、書き換えの漏れがあったら・・・・ 上記の異なる記述が混在するようになったら・・・・ 後任者は、困るのではないでしょうか。 自己責任で解釈してください。 ※ 余談 初期のバージョンを作成する時には、それなりのスキルのある人に限ると思います。 でない場合は、使い捨て・・・、次回は作り直し・・・を覚悟するのでしょうか。 初期に作ったものを何年使うかの計画もあると思いますが・・・・ 考え方/方針で記述はいろいろと変わってくると思います。 例えば、閏年・・・・ 西暦が 100 で割り切れれば・・・・ でも、400 で割り切れれば・・・・ 作った物の寿命を 10 年とみた場合、上記閏年の処理(記述)は、いま必要ですか? また、 よく休日の判別云々がありますが、無理やり計算式で求める必要がありますか・・・・ 休日を管理するテーブルを持って・・・・の方が確実ではありませんか? 年間 120 日休日があるとして、10 年分で 1200 レコード程度です。 土日休みが、ある年・ある期間だけ木・金に変わったとか・・・・ テーブルに持っていれば、すぐに対応できますよね。 (それなりの記述しておくことは必要ですが・・・) 要は、考え方/方針があって、記述/実現方法があると思っています。 そこがわかるまでは、修正に着手すべきではないと思います。 ごく稀に、こういう実現の仕方をしたので、運用はこうして・・・・ っていうものもあるのかもしれません。 このご質問以降にも質問されているようですが、 正解は前任者でなければ分からない・・・が回答になるように思います。 これこれをやりたい時の記述は・・・・いろいろと方法は回答できると思います。 なぜこう記述している・・・・正解は回答できないと思います。 前任者はその時の仕様云々からめて、必要と思っていたから記述したんじゃ・・・ 前々任者、仕様書、実物等々からその裏付けをとる作業が一歩目ではないでしょうか。 これをやって最終的に、この記述は間違っている・・・・とかになると思います。
その他の回答 (1)
- piroin654
- ベストアンサー率75% (692/917)
ついでと言っては何ですが、 IIf([NO]>=3 And [NO]<=7,1) IIf([NO]>=3 And [NO]<8,1) についても疑問を持つというのはどうでしょう。 というのは置いて、NOというフィールドに 収まる値が整数ならば同様に成り立つ、という ことでどうでしょう。 何故、質問の下の式にしたのか、その時の 心境は前任の方に聞かないと分かりませんが。
お礼
そうなんですね。 おかしな質問にお答えいただきありがとうございました。
お礼
とてもべんきょうになりました。 どうもありがとうございました。