• ベストアンサー

アクセスの計算方法を教えて下さい

テーブル(1)にある「金額A」からテーブル(2)にある「金額B」「金額C」「金額D」を差し引いた値をフォームでテキストボックスを挿入し求めたいのですが、計算式が解らず困っています。 単なるコントロールソースに =SUM[[金額A]-[金額B]-[金額C]-[金額D] と入れたのですが、値が出ません。 テーブルからのフォームでは、できないのでしょうか?

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

  • ベストアンサー
  • dober-o
  • ベストアンサー率59% (260/439)
回答No.3

単にテーブル(1)およびテーブル(2)の合計の差分でよければ =DSum("金額A","テーブル(1)")-DSum("金額B+金額C+金額D","テーブル(2)") で計算できます ある特定条件における差分ならば 例えば二つのテーブルにそれぞれ[日付]というフィールドがあり、2005/05/01の差分を計算したいなら =DSum("金額A","テーブル(1)","日付=DateValue('2005/01/01')")-DSum("金額B+金額C+金額D","テーブル(2)","日付=DateValue('2005/01/01')") となります フォームで無理やり計算するとこうなりますが #1さんの回答のとおりクエリーを使った方が後々役立つと思いますよ

nuu3024
質問者

お礼

ありがとうございました。 そうでない時にも、式を入れてみましたが…時間のある時に、ゆっくりチャレンジしてみます。

その他の回答 (10)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.11

A。NO4です。 伝送が遅く何度もクリックしたため、重複登録してしまいました。見苦しく、ご迷惑をおかけしてすみません。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

>テーブル(1)にある「金額A」 >テーブル(2)にある「金額B」 テーブル(1)の金額は「何か」たとえば人、製品 期間、など何かに注目した計数でしょう。 同じくテーブル(2)の金額もたとえば人、製品 期間、など何かに注目した計数でしょう。 その2つの、たとえば人、製品、期間、などを両者マッチさせた上で(リレーション)そこで同じ人、製品、期間などについて足し算・引き算をすることがほとんどです。この観点が抜けています。これはクエリで行います。両テーブルの行(レコード)をあわせるといいましょうか。 そしてクエリの「フィールド」(の1つに演算フィールドを設けてそこで)でA-B-C-Dを計算式として入れます。[]で金額Aなどフィールド名を囲んで記述しますが。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

>テーブル(1)にある「金額A」 >テーブル(2)にある「金額B」 テーブル(1)の金額は「何か」たとえば人、製品 期間、など何かに注目した計数でしょう。 同じくテーブル(2)の金額もたとえば人、製品 期間、など何かに注目した計数でしょう。 その2つの、たとえば人、製品、期間、などを両者マッチさせた上で(リレーション)そこで同じ人、製品、期間などについて足し算・引き算をすることがほとんどです。この観点が抜けています。これはクエリで行います。両テーブルの行(レコード)をあわせるといいましょうか。 そしてクエリの「フィールド」(の1つに演算フィールドを設けてそこで)でA-B-C-Dを計算式として入れます。[]で金額Aなどフィールド名を囲んで記述しますが。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.10

>テーブル(1)にある「金額A」 >テーブル(2)にある「金額B」 テーブル(1)の金額は「何か」たとえば人、製品 期間、など何かに注目した計数でしょう。 同じくテーブル(2)の金額もたとえば人、製品 期間、など何かに注目した計数でしょう。 その2つの、たとえば人、製品、期間、などを両者マッチさせた上で(リレーション)そこで同じ人、製品、期間などについて足し算・引き算をすることがほとんどです。この観点が抜けています。これはクエリで行います。両テーブルの行(レコード)をあわせるといいましょうか。 そしてクエリの「フィールド」(の1つに演算フィールドを設けてそこで)でA-B-C-Dを計算式として入れます。[]で金額Aなどフィールド名を囲んで記述しますが。

nuu3024
質問者

お礼

ありがとうございました。クエリでする場合、どこで値を出すようにすればいいのか解りませんでした。 時間のある時に、ゆっくりチャレンジしてみます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.9

>テーブル(1)にある「金額A」 >テーブル(2)にある「金額B」 テーブル(1)の金額は「何か」たとえば人、製品 期間、など何かに注目した計数でしょう。 同じくテーブル(2)の金額もたとえば人、製品 期間、など何かに注目した計数でしょう。 その2つの、たとえば人、製品、期間、などを両者マッチさせた上で(リレーション)そこで同じ人、製品、期間などについて足し算・引き算をすることがほとんどです。この観点が抜けています。これはクエリで行います。両テーブルの行(レコード)をあわせるといいましょうか。 そしてクエリの「フィールド」(の1つに演算フィールドを設けてそこで)でA-B-C-Dを計算式として入れます。[]で金額Aなどフィールド名を囲んで記述しますが。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

>テーブル(1)にある「金額A」 >テーブル(2)にある「金額B」 テーブル(1)の金額は「何か」たとえば人、製品 期間、など何かに注目した計数でしょう。 同じくテーブル(2)の金額もたとえば人、製品 期間、など何かに注目した計数でしょう。 その2つの、たとえば人、製品、期間、などを両者マッチさせた上で(リレーション)そこで同じ人、製品、期間などについて足し算・引き算をすることがほとんどです。この観点が抜けています。これはクエリで行います。両テーブルの行(レコード)をあわせるといいましょうか。 そしてクエリの「フィールド」(の1つに演算フィールドを設けてそこで)でA-B-C-Dを計算式として入れます。[]で金額Aなどフィールド名を囲んで記述しますが。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.8

>テーブル(1)にある「金額A」 >テーブル(2)にある「金額B」 テーブル(1)の金額は「何か」たとえば人、製品 期間、など何かに注目した計数でしょう。 同じくテーブル(2)の金額もたとえば人、製品 期間、など何かに注目した計数でしょう。 その2つの、たとえば人、製品、期間、などを両者マッチさせた上で(リレーション)そこで同じ人、製品、期間などについて足し算・引き算をすることがほとんどです。この観点が抜けています。これはクエリで行います。両テーブルの行(レコード)をあわせるといいましょうか。 そしてクエリの「フィールド」(の1つに演算フィールドを設けてそこで)でA-B-C-Dを計算式として入れます。[]で金額Aなどフィールド名を囲んで記述しますが。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

>テーブル(1)にある「金額A」 >テーブル(2)にある「金額B」 テーブル(1)の金額は「何か」たとえば人、製品 期間、など何かに注目した計数でしょう。 同じくテーブル(2)の金額もたとえば人、製品 期間、など何かに注目した計数でしょう。 その2つの、たとえば人、製品、期間、などを両者マッチさせた上で(リレーション)そこで同じ人、製品、期間などについて足し算・引き算をすることがほとんどです。この観点が抜けています。これはクエリで行います。両テーブルの行(レコード)をあわせるといいましょうか。 そしてクエリの「フィールド」(の1つに演算フィールドを設けてそこで)でA-B-C-Dを計算式として入れます。[]で金額Aなどフィールド名を囲んで記述しますが。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

テーブル(1)とテーブル(2)の関連付けはどうなってますか? テーブル(1)とテーブル(2)を連結したクエリをソースにした場合は =[金額A]-[金額B]-[金額C]-[金額D] で計算できますが、そうでない場合は =[金額A]-DLookup("[金額B]","テーブル(2)",条件)-.... の様にDlookupに条件を追加して検索する必要があります。

nuu3024
質問者

お礼

ありがとうございました。クエリでする場合、どこで値を出すようにすればいいのか解りませんでした。 そうでない時にも、式を入れてみましたが…時間のある時に、ゆっくりチャレンジしてみます。

  • doredore1
  • ベストアンサー率38% (13/34)
回答No.1

テーブル(1)とテーブル(2)は、伝票NO.などでリレーションされている事とします。 クエリのフィールドで 値: [金額A]-[金額B]-[金額C]-[金額D] を計算。 このクエリをレコードソースとしてフォームを作ったら如何でしょうか。

nuu3024
質問者

お礼

ありがとうございました。クエリでする場合、どこで値を出すようにすればいいのか解りませんでした。 時間のある時に、ゆっくりチャレンジしてみます。

関連するQ&A

  • Accessで、親フィールドに子フィールドの値を入れたいのですが

    親フィールドの[テキストボックスA]に [テキストボックスB]-子フィールドのフッターにある[テキストボックスC] という式の値を表示させたいのですが。 Aのコントロールソースに = [B]-[子フィールド名].フォーム![C] と入力すると「#Name?」となり、「フォーム」を「Form」とすると空欄になるのですが、どこを直せばいいのでしょうか。 [B]は数値です。 [C]はsum関数が入っていて、普通に表示されてます。 宜しくおねがいします。

  • access 帳票形式での Sum関数について

    お世話になります、 access2003を使っています、 テーブル商品があり、以下3つの列があります 商品名 単価 数量 フォーム集計をテーブル商品を元に帳票形式で作りました 帳票の1行にテキストボックス”金額”を追加してそのコントロールソースの値を [単価]*[数量]にしました。 帳票の1行づつは 商品名 、単価、 数量、金額([単価]*[数量]) の4つの列が並びます。 上記までは一行づつ計算して金額の値は正確に表示されます。 このフォームのフッターに帳票の各業の金額の合計を求めるため テキストボックス”合計金額”をつくり コントロールソースを =Sum([金額]) にしたのですが、明らかに合計金額が違った数値が出てきます。 出てきた金額が何をどう計算して出てきたのか見当が付きません どのようにしたら正確な合計金額が得られるのでしょうか? 何方かお教えいただけますようお願い致します、

  • Access97フォームで計算したものをテーブルに入力したい

    Access97で受注管理のデータベースを設計中です。 フォームのテキストボックス[税込金額]のコントロールソースに =Int([税抜金額]*[消費税率]*0.01+[税抜金額]) という式を入れました。 はたと気がついたら、基になるテーブルの[税込金額]には当然 (コントロールソースじゃなくなってしまったから)そこで 計算された値は更新されません。 テーブルにその値を更新したいのですが、そのためにはどのように すればよろしいでしょうか? 基になるテーブルに[税抜金額][消費税率][税込金額]という項目が あります。で、フォームを使用して入力時に税抜き金額を入力し、 消費税率を入力すると税込金額が小数点切り捨てで自動で入力される という風に組めればフォームの中で計算できなくてもフォームで値が 表示されればかまいません。 要領を得ない質問でスミマセン。お手数ですが教えてください。

  • サブフォームにあるテキストボックスの値を参照したい

    ACCESS2010です。 サブフォーム(帳票フォーム)のフッターにある、コントロールソースが =nz(sum([金額]),0) と設定してあるテキストボックスがあります。([合計金額s]) この[合計金額s]の値を、メインフォームのコントロールソースがテーブルの項目に設定されているテキストボックス([金額])で参照したいのですが、金額入力直後の値が参照できません。 現在はメインフォームに中継用のテキストボックス([金額wk])を作成し、コントロールソースを[合計金額s]に設定、acNewRecする前に[金額wk]の値を[金額]へ渡しています。 何とか直接参照する方法はありませんでしょうか。

  • Accessで式の計算結果がテーブルに反映されない。

    計算結果を表すテキストボックスのコントロールソースに式を書き込みました。フォーム上では、計算されてでてきたのですが、その数値がテーブル上では現れてこないのです。テーブルでも同じ式を入れる必要があるのでしょうか?

  • [Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには

    Accessにおいて。 帳票フォームの"詳細"に非連結のコントロール(例:テキストボックス)を配置し、それぞれ別々の値を持たせることは可能なのでしょうか? 例えば。 VBAにおいて、カレントレコードのAという値とBという値を計算し、その値を非連結のテキストボックスに挿入したとします。 単票フォームであれば、問題なくテキストボックスには計算後の値が表示されるわけですが…… 帳票フォームの場合では、"規定値"に計算式を入れたときと同様、先頭の値と同じものが連続するテキストボックスに表示されてしまいます。 これを回避し、計算後のデータを連続するテキストボックスにそれぞれの値として表示させるには、どのようにすればよいのでしょうか? もちろん、連結させたコントロールを使用すれば、問題はないのですが…… 状況によっては、これが行えた方が便利かと思い、質問させていただきます。 「帳票フォームでは不可能である」といった回答でもかまいません。 どうぞよろしくお願いいたします。

  • Accessの計算について

    いつもお世話になっております。 Access2002で、以下のような計算って出来るのでしょうか? <材料テーブル> ID|材料名|単価 1|木  |200 2|紙  |100 というテーブルがあり、コンボボックスで選んだ場合に材料テーブルのIDの値をmasterテーブルに以下のように格納させたいと思ってます。 <master> ID|数量| 1| 1| 2| 1| すなわち、masterテーブルには材料テーブルで選択したIDの値が挿入されるのですが、masterテーブルに挿入されたIDを元に、材料テーブルの単価を参照させて計算させると言うことです。 すなわち計算式は、ファームで合計欄という非連結のテキストボックスを作って、その中に、計算式を入れて計算させるということです。 合計=単価*数量 って具合です。実際は、masterテーブルに入っている値はIDなので、それをどうにかして、masterに入っているIDを元に単価を参照させて、フォーム上で計算させたいという風にしたいのですが・・・ よろしくお願いいたします。

  • ACCESSのフォーム内のテキストボックスのコントロールソース

    ACECESSでフォームを作り、テキストボックスを作成します。次に、そのテキストボックスへテーブルAのデータBを割り当てたとします。このとき、このテキストボックスに、テーブルAのデータBが割り当てられている事を確実に知る方法はありますでしょうか。 このテキストボックスのプロパティのコントロールソースを参照すると、データBが表示されますが、テーブルAの情報が表示されません。自分で作成したフォームについてはそれでも良いのですが、今回他の人が作成したフォームを見る必要があり、どのテーブルのどデータを割り当てているかを確実に知りたいのですが、その方法をご存じでしたら教えて下さい。

  • Accessテキストボックスへの色の付け方

    こんにちは。 Access2000を使用しています。 テーブルにA、B、C、D、Eという名前のレコードがあります。フォームで帳票形式で色々とカスタマイズしていきたいのですが… フォーム内で小計という名前のテキストボックスでA+B+Cの計算式を入れその小計テキストボックスをクリックまたはカーソルが移動した際にA、B、Cに色が付く様にしたいのですが、参考になるサイトややり方を知っている方教えて下さい。宜しくお願いします。

  • テキストボックスにクエリ結果を表示させたい

    フォームにテキストボックスAがあり、そこに入力した文字(下記テーブルのフィールド1の文字)をクエリーの「抽出条件」にし、同じフォーム上のテキストボックスBに表示しようと思っています。 クエリを開くとパラメータの入力を求めてきて、入力するとうまく抽出されます。 テーブルは フィールド1|フィールド2   A   |  10   B   |  20   C   |  30   D   |  40 のような簡単なものです。 テキストボックスBのコントロールソースに 「=[○×クエリ]![フィールド2]とやっても「#Name?」と表示されてしまいます。 どのようにやればよいのでしょうか?

専門家に質問してみよう