• ベストアンサー

ACCESS2000について

現在Access2000でデータベースを作成しています。あるクエリに「合計」「共通費」「諸経費判定額」「諸経費率」「諸経費」とフィールドがあります。 「諸経費判定額」=「合計+共通費」です。 「諸経費」=「諸経費判定額」*「諸経費率」です。 諸経費率は毎月、データごとに変わるので、固定させることができません。 諸経費率については、たとえば、諸経費判定額が300万以上なら諸経費率30%、200万以上なら20%、100万以上なら10%という具合に条件を細かくしていきたいのです。これが月によって、300万以上なら25%、200万以上なら15%120万以上なら10%などと異なる場合もあります。 諸経費率を1件ずつ入力していては大変なので、フォームを使って 自由に条件が入力できて、それをクエリに反映させるといった感じの方法はないでしょうか?何かよい方法があれば、教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>もし●●以上なら、★★%と、もし■■以上なら、▲▲%と、●★■▲を自由に >変更・・・ そうだったのですか。取り合えず値を1つ入力すれば良いものと勘違いしました。 それでしたらフォームに300万以上、200万以上、120万以上などの制限 を入力できるフィールド3つとその場合の%の値を入力するフィールド3つ作っ てクエリの諸経費率にIIfを使えば出来ます。 各フィールド名を例えば、制限1(300万以上などにあたる最高制限額)その%を 諸経費率1、制限2(200万などにあたる2番目の制限額)その%を諸経費率2、 制限3(最低の制限額)その%うを諸経費率3とするとしてクエリの諸経費率1に IIf([諸経費判定額]>[制限1],[諸経費率1],IIf([諸経費判定額]>[制限2],[諸経費率2],[諸経費率3])) で諸経費判定額が制限1より大きければ諸経費率1を、それ以外で制限2より大き ければ諸経費率2を又それ以外であれば諸経費率3の%の値を持ってきて計算され ます。>などの比較演算子は以上であれば>、その金額を含むのであれば>=を使うの は通常と一緒です。 後%の値を入力する単位が整数で入力し%として扱うのであれば[諸経費率1]など のところを([諸経費率1]/100)に変えて小数に合わせてください。 こんなところで良いでしょうか?また質問内容と違えば教えてください。

m_f
質問者

お礼

まさに私の希望通りに設定できました。できないかと諦めかけていたので、感激です。細かくアドバイスを頂きまして、ありがとうございました。今後も何かありましたら宜しくお願い致します。

その他の回答 (3)

回答No.4

別に、論理式を毎回いじる必要はありませんよ 論理式で諸経費判定基準になる数値を収めたテーブルを作成しておけば それをデータソースにしたフォームから変更する事で、いつでもどんな数値にでも変更可能ですし もう少し、ややこしくしたければ、マクロと更新クエリーを組み合わせてやる方法もありますね ややこしく・・・と言うのは、ダイレクトに元になるクエリーを触れなくすると言う意味です

m_f
質問者

お礼

論理式をうまく利用すれば、設定も可能なのですね。色々と参考になるご回答を頂きまして、ありがとうございます。マクロについても勉強して設定してみようと思います。今後も何かありましたら宜しくお願いします。

回答No.2

普通は、そう言った条件計算はクエリーで実行させるのが、軽くて良いんですけどね ちなみに、論理式IIFで設定してやれば、諸経費率を自動計算してくれますし 論理式が面倒だ、と言う場合は・・・ 諸経費率用の別テーブルを作成しておき、諸経費をINT若しくはFIXで丸めた整数値として諸経費率のフィールドと結合すると、容易に計算させる事が可能ですよ

m_f
質問者

補足

IIFで設定すると楽だと思うのですが、毎月、諸経費判定額の基準とそれに対する諸経費率が変わってきますし、アクセスのことを知らない人が論理式を変更して設定が崩れてしまうのも不安なので、何らかの方法で数字さえ入力すれば、諸経費が計算されるようになるとうれしいのですが、やはりレコードに対してそれぞれ諸経費率を入力するしか方法はないのでしょうか?

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>フォームを使って自由に条件が入力できてそれをクエリに反映させる・・・ フォームを作り諸経費率を入力するフィールドを作ってクエリに反映させるには 例えばフォーム名をフォーム1としてフィールドを諸経費率1とするとして クエリに諸経費率というフィールドがあるのならそのフィールドに 諸経費率:[Forms]![フォーム1]![諸経費率1] でもって来れます。 後は今まで通りに「諸経費」に「諸経費判定額」*「諸経費率」の演算で大丈夫 です。 ただしクエリを開く際にフォーム1が開いていることが条件になります。 こういう事でよろしいのでしょうか。

m_f
質問者

補足

ご回答頂きありがとうございます。早速、試してみました。フォームをクエリに反映する方法はわかったのですが、この方法ですと諸経費率が1つに統一されてしまったのですが・・・諸経費判定額を判断して、諸経費率が各レコードに対して変更できればうれしいのですが。論理式を毎月変えるにしても、アクセス初心者に式の変更を任すと別の設定までもが崩れてしまう不安もあります。もし●●以上なら、★★%と、もし■■以上なら、▲▲%と、●★■▲を自由に変更できるような設定があればと思うのですが、わたしの知識の範囲では、方法が思いつきませんでした。やはりレコードごとに率を変更するのは難しいのでしょうか?

関連するQ&A