• ベストアンサー

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

  • Access2000について

    仕事上突然Accessの修正を依頼され、ほとんど知識がなく質問の仕方もよくわからない状態ですが、なんとか完成させたいので初心者でもわかるような回答をよろしくお願いします。 あるクエリに「判定額」「経費率」「経費」というフィールドがあります。 [経費]=[判定額]*[経費率]です。 経費率は判定額の条件に応じて設定が決められています。 しかしその設定も期ごとに変化するので、条件を設定する為に[上限金額]と[経費率]というフィールドのあるテーブルを新たに作り、それをフォーム上で入力できるようにし、誰でも簡単に条件を変更できるようにしたいと思います。 そこで質問なのですが、 数が変化する条件[上限金額]をどうやって[判定額]に結び付けて[判定額]*[経費率]=[経費]という計算をさせるのでしょうか? 「判定額」「経費率」「経費」があるクエリに新たに作った条件のテーブルを 表示させてはみたもののその後の手順がわかりません。

  • Accessでデータベースを作っています。

    Accessでデータベースを作っています。 先日、こちらで質問をさせていただいて、クエリで複数のフィールドを対象にデータを検索する ことはクリアできました。 ありがとうございました。 ご指導に基づき、4つのフィールド(仮にA,B,C,D)について、クエリの抽出条件に  Like "*" & [Aを入力] & "*"  Like "*" & [Bを入力] & "*" ・・・ とそれぞれ設定してパラメータ入力を求め、4つの条件すべて、または一部のみ設定して検索し、 正しい検索結果が得られました。 今度は、検索用のフォームを作成し、フォームで入力した条件をクエリに送って、同じ結果を 得たいと思うのですが、以下の方法では正しい検索結果が出てきません。 ・フォームに検索用のボックスをA~Dまで4つ作成(ひとつはコンボボックス、あとはテキスト) ・クエリの抽出条件に、それぞれ以下を入力     Like "*" & [Forms]![Q_form(作成したフォームの名前)]!                       [A(それぞれの検索ボックスの名前)] & "*" ・フォームに「クエリの実行」のコマンドボタンを配置 パラメータで入力する代わりにフォームを使いたい、というものなのですが(パラメータ入力 よりも、コンボボックスを使って値を選ぶ方が検索する人には使いやすいかと思って)、どうしたら うまいこといきますでしょうか。。 教えてください。

  • ACCESS2010 テキストボックスに合計値を

    どなたかお助け願います。 私のPC環境は Windows7 64bit ACCESS2010  でございます。 ACCESSは苦手ながら簡単な環境を作成いたしております。 テーブル名 T_入出金    フィールド1 入出金月    フィールド2 入金業者名    フィールド3 入金額    フィールド4 出金業者名    フィールド5 出金額 クエリ Q_入金クエリ    フィールド1 入金額の合計: 入金額    集計:合計    フィールド2 入金業者名 集計:Where条件 抽出条件:Like "業者名" フィールド3 入出金日  集計:Where条件 抽出条件:Like 201401  ←日付です。 としたものを作成いたしました。 このフィールド1の合計結果をテキストボックスに表示したく、 メイン帳票フォームのヘッダー部分にテキストボックスを設置し、  コントロールソースに =[Q_クエリ]![入金額の合計] としましたが、#Name? と出てしまいます。 関数が間違っているのでしょうか・・・?

  • アクセス クエリがうまく動きません

    添付画像をご覧ください。 「品番」フィールドと「品番の大文字化」フィールドとを比較し、その結果を「判定」に返すクエリを作成しました。小文字を含んだ品番があった場合、判定で1で返すようにしているのですが、「判定」の抽出条件に1を入力して、クエリを実行すると、パラメータの入力が求められてしまいます。 結果としては、判定:1のみを抽出したかったのですが、それがうまくできません。 どうしたらよいでしょうか。。 「品番」フィールド →品番 「品番の大文字化」フィールド →品番大文字化: StrConv([品番],1) 「判定」フィールド →判定: StrComp([品番],[品番大文字化],0)

  • Access2000のレポート作成

    アクセスの初心者です。どうぞ、お願いします。 Excellで入力すれば、私としては簡単だったのですが、 入力するフォームが多いので、入力フォームを利用したくて、 Accessを始めたところです。 100名以上の人から、52項目ほどを提出してもらい、 集計するだけなのです。 入力フォームを整形し、 一行に、フォームを4つずつ、置いてます。 [件数_1] [合計額_1] [負担額_1] [差引額_1] [件数_2] [合計額_2] [負担額_2] [差引額_2]   ・    ・     ・     ・   ・    ・     ・     ・ [件数_12] [合計額_12] [負担額_12] [差引額_12] [件数_13] [合計額_13] [負担額_13] [差引額_13] というような形です。 説明できないので、このように投稿します。スイマセン。 これをそれぞれ集計したいのですが、クエリで集計できる能力に欠けてますので、 いろいろやっています。参考書を書店にて立ち読みしましたが、 クエリでは、抽出条件だけで、どうも、分かりませんでした。 それで、フォームの中に、テキストボックスを作成し、 =Sum([件数_1]) などと、書き込むと集計できるので、 これで、レポートを作成しようとしましたが、上手く行きません。 レポートに枠線を作成し、 テキストボックスで"=Sum([件数_1])"や"=Sum([件数_2])"としたら、 "#ERROR"となります。 どうしたら、上手く集計して、レポートを作成できるでしょうか? 拙い説明で申し訳ないですが、お願いいたします。

  • Accessのフォームとテーブルについて教えてください。

    Access2003を使用しています。 既存のフォームAにフィールド3個を増やしました。 フォームAはテーブル(1)と連動していました。 追加したフィールドはテーブル(6)のものです。 ところがフォーム上で追加フィールドに入力が出来なくなりました。3フィールドのうち、ひとつはコンボボックスです。表示はされますが確定ができません。 フォームAのSQLステートメントではテーブル(1)・(6)以外にテーブル(2)・(3)・(4)・(5)が結合されています。 フォームAからするとテーブル(2)・(3)・(4)・(5)のデータはIDの名称を見るための参照用です。 テーブル(6)は、追加フィールドのコンボボックスが参照用で、他の2追加フィールドは、フォームから入力してテーブル(6)に反映させたいものです。 テーブル(6)の画面では入力できます。 フォーム上からは入力できません。 設定が何か欠けているからでしょうか? 他の質問では2つのテーブルをひとつのフォームにする場合は、クエリを別に設けた方がいいとなっています。フォームが出来上がっているので、できればクエリを設けずに行いたいのですが、よくない方法でしょうか? 手順なども踏まえて教えていただけると助かります。 よろしくお願いいたします。

  • Access データの追加について

    大変基本的なことで申し訳ありません。 Accessのデータベースを作成したあと、追加して情報を入力すると 例えば、クエリで抽出しても、加わったデータがすぐにリストに 反映されるはずだと思うのですが なぜかそれがうまくいきません。 たとえば、クエリAを作ったあとに、データBをフォームから入力して、 クエリAを開くと、そこにデータBが反映されないということはあるのでしょうか。 その場合は何が原因でしょうか。クエリの設定方法でしょうか。 データは、私のPCのみで管理しており、複数人で入力しているものではありません。 Accessが2003を使用しています。 宜しくお願い致します。

  • Accessのフォームで

    Accessで2つほど質問いたします。 (1)テーブルにフィールドを追加したのですがフォーム上でそのフィールドが追加できません(プロパティで選択できない)、多分クエリーを経由してフォームを作成したのですが、どのクエリーだかわからなくなってしまいました、参照しているクエリーがどれなのかを調べる方法を教えてください。 (2)検索フォームを作成して入力した文字を含む検索をしたいのですが どのようにしたら良いのでしょうか、今は入力の文字列の最初と最後に「 * 」を入力して検索しています。

  • Access 2003について

    Microsoft Access2003を利用しているものですが、あるデータベースからクエリでフィールド名 最終効果金額を計算させています。 最終効果金額の計算結果(書式は通貨です)からフィールドを追加して報奨金を自動入力させたいと 考えています。 追加フィールド名(報奨金) 報奨金 (1)¥0~¥29,999=¥0 (2)¥30,000~¥50,000=¥5,000 (3)¥50,001~¥300,000=¥10,000 (4)¥300,001~¥500,000=¥20,000 (5)¥500,001~ =¥30,000 以上最終効果金額結果から(1)~(5)を反映させる事は可能でしょうか? ご教示宜しくお願いします。

  • ACCESS のフォームの内容をクエリーの抽出条件にするには?

    Windows2000,Access2000です。 Accessのクエリーでデータを選択して表示する作業をしています。 現在はクエリーを自分で修正して実行しています。 でもそれではみんなで使うには使いづらいので、 フォームを作成しそのフォーム上の入力項目に入力された データをクエリーの抽出条件に指定する様にしようという事になりました。 フォーム上の入力フィールドの内容をクエリーの抽出条件に設定する方法はすぐわかりました。 でも「like」を指定する方法がわかりません。 つまりフォーム上の入力データを“xxx”とした時、クエリーの抽出条件を 「like "*xxx*"」としてクエリーを実行したいのです。 つたない文章でわかりにくいかと思いますが、ご存じの方おりましたら、 よろしくご教示ください。

このQ&Aのポイント
  • ファックス受信できているが、送信元からのファックスが届かない状況についてお困りです。
  • 問題の製品はbrother MFC-J730DNです。
  • 環境はひかり回線で利用しています。
回答を見る

専門家に質問してみよう