• ベストアンサー

Accessの計算について

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

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

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

コンボボックスでIDと材料名・単価を表示するようになっていれば簡単です。 単価を格納するテキストボックスを作ってコンボボックスの表示から単価を 取得すれば良いと思います。 例えばコンボボックスをコンボ1としてコンボボックスの更新後処理に  ID・材料名・単価の順に並んでいるとすれば Private Sub コンボ1_AfterUpdate()      単価 = コンボ1.Column(2) End Sub で単価フィールドにレコードを取り込みますのでその単価を使ってフォーム上で 計算できます。

hunnbaruzo
質問者

お礼

ありがとうございます。できました(^^ 単価=コンボ1.Column(2)っていうのを使えるんですね(^^; まだまだ、勉強不足っていいますか、なんといいますか 汗 これからも、よろしくお願いいたします。

その他の回答 (3)

回答No.4

No2の補足に対してです >masterの方には材料テーブルのIDをいくつ入れてもいいように、 >あらかじめ15個くらいのレコードの幅を設けています。 ということは、数量も15個あるのですね。しかも1レコードに。。。 こういう案はどうでしょう。masterテーブルの情報を二つに分割します (いわゆるヘッダーとボディ) 案件の不変な部分をヘッダーテーブルに 材料の部分をボディテーブルとして ヘッダーのキーとボディのキーを同一にして ボディの方はキーと材料数の枝番を付けます。 最大が15個なら、画面にも15行の材料登録のための コンボを設けます。 ちょっと難しくなりますが、プログラムを組むよりは簡単かと 思います。

hunnbaruzo
質問者

お礼

何度もありがとうございました(^^ いろいろな考え方もでき大変参考になっております。 今回は急な対応を迫られているためより私の分かりやすい方で対処させていただきました。ats8181oyajiさんのご解答も組んでみてこれからに役立てようと思ってます。これからもよろしくお願いいたします。

回答No.2

こんにちは さっきの回答の追加です。 すでに、masterには材料テーブルのIDが格納されているので 後は、クエリで、二つのテーブルのIDを結合させれば 材料テーブルの単価を持ってくることができます。 合計:[材料テーブル]![単価]*[masterテーブル]![数量] こんな感じです 頑張ってください。

hunnbaruzo
質問者

補足

さっそくのご解答ありがとうございます。 二つのIDの結合についてですけど、masterの方には材料テーブルのIDをいくつ入れてもいいように、あらかじめ15個くらいのレコードの幅を設けています。すなわち、材料は一つの案件につきいくつも使うと考えれるためにmasterテーブルの方には15個設けたのですが。。。。 その場合はどのように結合させたらよろしいのでしょうか? よろしくお願いいたします。

回答No.1

こんにちは コンボボックスのプロパティの値集合ソースの使い方はご存知ですか? 値集合ソースが SELECT DISTINCTROW ID,材料名 FROM 材料テーブル; 列数が2 列幅を0cm;2cm 連結列を1 で コントロールソースを masterのIDにすれば 画面からの入力した材料テーブルのIDの値を masterテーブルに格納できます。

関連するQ&A

  • ACCESS教えて下さい。

    こんにちは。 ACCESSで今データーベース作ってます。 初心者なのですが、 売上管理の為 テーブルを作成 ID 数量 単価 金額 を作成し、入力(フォーム)で数量と単価をいれると自動計算できるようにしたいのです。 今までは、合計をクエリーで作成してました。計算は出来るのですが、テーブルで合計が入力されないし、その金額を次利用しようとしても、使えません。 数量*単価⇒の値を金額へ保存していきたいのですが・・。 宜しくお願いします。

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

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

  • アクセス2000フォームからテーブルへ計算結果映し出す方法

    テーブルのフォームは 単価 数量 合計の順です 合計フォームに[単価]*[数量]入れたいのですが フォーム内では計算不可能!と過去ログ読んで勉強しました。 フォームでデザイン>合計のテキストで プロパディ>コントロルソースで =[単価]*[数量]と 書き込み 操作すると フォームの合計欄には=[単価]*[数量]の答えがでてきます。 喜んで テーブル開けると合計フォームは「空欄」のまま・・・ ここで 質問ですが フォームで合計欄には=[単価]*[数量] と 設定しても テーブルには 合計は 反映されないのでしょうか? もし 反映できる式?がありましたら ご教授下さい。 あと フォーム内 テキストボックス 非連結を連結に するには どうしたらよいのでしょうか? お願い します。

  • アクセスで見積書作成

    アクセスで見積書を作成していますが、レポートで経費の計算が上手くいきません。 作成したい見積のレイアウトは以下の通りです。   (1)○○費      (1)○○○   単価 × 数量 = 金額      (2)○○○   単価 × 数量 = 金額      (3)○○○   単価 × 数量 = 金額   (2)××費      (4)×××   単価 × 数量 = 金額      (5)×××   単価 × 数量 = 金額      (6)×××   単価 × 数量 = 金額    以下同じように(5)まであります。   (6) 経費A     (1)~(3)の合計 × 1%   (7) 経費B     (4)~(5)の合計 × 2%   (8) 経費C     (1)~(5)の合計 × 3%   (9) 端数処理    (1)~(8)の合計の千円以下の部分   (10) 合計     (1)~(8)の合計-(9) テーブルは次の4つを作成しました。    ・大項目Tとして(1)~(5)の値    ・小項目Tとして(1)~(15)の値、大項目名(リレーション)    ・見積Tとして見積No、相手先名等    ・見積明細Tとして見積No(リレーション)、小項目(リレーション)、数量等 レポートで経費の計算がどうしても上手くいきません。クエリーも色々作成してみましたが、レポートでどう参照すればいいのかわかりません。完全に行き詰まっています。 どなたかお知恵を貸してください!レポートでのグループヘッダ・フッタの設定の仕方なども教えていただけると大変ありがたいです。

  • Accessにてテーブルが異なるデータの引き算

    Access に異なるテーブルに収められているデータの「引き算」ほ方法をお教えください。 只今作成しているシステムは、簡単な在庫管理システムです。 今後、拡張していくこともあり得るという前提で各テーブルを作成しました。 作成したテーブルは以下のとおりです。 仕入先テーブル「仕入先ID・仕入先名・フリガナ・〒・住所1・住所2・TEL・FAX」 材料テーブル「材料ID・材料名」(単価はその時々で変わってくるのであえてここでは設定していません) 仕入テーブル「仕入ID・日付・仕入先ID・材料ID・仕入数量・単価」 払出テーブル「払出ID・日付・材料ID・払出数量」 在庫確認クエリにて以下の設定を行いました。 材料テーブルより「材料ID・材料名」 仕入テーブルより「仕入数量」 払出テーブルより「払出数量」 を設定し演算にて「在庫: Sum(Nz([仕入数量],0)-Nz([払出数量],0))」を入力しました。 データシートビューにて確認したところ、お互い発生した回数分だけ足されてしまい正確な在庫数量が表示されません。 例 ==================== 9/1 仕入数量 100 9/2 払出数量 50 9/3 仕入数量 100 9/4 払出数量 50 9/5 仕入数量 100 ==================== とした場合に、仕入数量600 払出数量300 となってしまいます。 以下は「SQLレビュー」の内容です。 SELECT 材料.材料ID, 材料.材料名, Sum(仕入.仕入数量) AS 仕入数量の合計, Sum(払出.払出数量) AS 払出数量の合計, Sum(Nz([仕入数量],0)-Nz([払出数量],0)) AS 在庫 FROM (材料 INNER JOIN 仕入 ON 材料.材料ID = 仕入.材料ID) INNER JOIN 払出 ON 材料.材料ID = 払出.材料ID GROUP BY 材料.材料ID, 材料.材料名; 解決方法をご享受くださいますようよろしくお願いいたします。

  • データシート上の計算について

    お世話になります。Access2002のフォームのデータシートでの計算についてご教授願います。 計算させる上での構成としましては、 1.マスターテーブルが存在し、そこにデータを格納する 2.マスターテーブルに格納するデータは別個に品目テーブルを参照して固有のIDのみをインプットさせてたい。 すなわち、品目テーブルの値(ID値、品目名、単価)が存在し、マスターテーブルに品目テーブルのIDのみを格納し、データシート上では個数を入力させると、自動的に計算させたいです。 <マスターテーブル>は、ID、M_ID、数量という構成をとり、品目テーブルは、M_ID、品目名、単価という構成をとり、M_IDでリレーションをとっています。 データシート上は、マスターテーブルのM_IDでコンボボックスをつくり、マスターテーブルのM_IDのコンボボックスは品目テーブルの品目と単価をデータで持っています。 データシート上での計算のしかたについてよろしくお願いいたします。 不明点がありましたら、補足いたします。

  • Access2000について

    テーブルの項目に [数量][単価][合計]が在ります  [数量]*[単価]=[合計]をテーブルの[合計]欄に 表示したいのですができません  どうしたらいいのでしょうか? よろしくお願いします。

  • Access⇒エクセルへのエクスポートについて

    Accessからエクセルへのエクスポートで質問です。 Accessのテーブルの中の一つのフィールド(名前は[合計])で、=[単価]*[数量]という計算をさせたとします。 このテーブルをエクセルにエクスポートし、エクセル上で例えば [単価]の累積合計 =SUM(**:**) [数量]の累積合計 =SUM(**:**) [合計]の累積合計 =SUM(**:**) をしたとすると、[単価]と[数量]は値が得られるのですが、Accessで計算させた[合計]は0になって値を得ることができません。 [単価]と[合計]は通貨型、[数量]は数値型に設定しています。 Accessのテーブル上では[単価]と[合計]には¥マークがついているのですが、エクセルにエクスポートすると、[単価]は¥マークがついておらず、[合計]には¥マークがついています。 Accessで計算させたフィールドは、エクセルにエクスポートした場合、数字として認識されないのでしょうか?文字になってる? うまく説明出来なくてすみませんが、Accessをエクスポートし、エクセルで加工計算を色々したいのですが、[合計]が計算出来なくて困っているという事です。 何故なのか全く判らないので教えてください。

  • アクセス

    アクセスでテーブル上で、   単価 数量 金額    3 5 15 のように単価、数量いれると金額が合計されるテーブルができますか? クエリはつかわないで・・

  • アクセス クエリ・集計・計算方法について

    アクセスの集計機能を使用して、品名毎の数量の合計と金額の合計を算出しようとしていますが、 思うようにできません。どなたか教えてください。 クエリのフィールドを左から・・・ (1)年月: Format([日付],"yyyy/mm")(集計:グループ化) (2)品名(集計:グループ化) (3)品名のカウント(集計機能:カウント) (4)単価(集計:グループ化) (5)金額: [単価]*[品名のカウント](集計:グループ化) このような形でクエリを実行していますが、すべての注文が1つだけなら問題ないのですが、実際には品名には数量が掛けられている場合もあり、現在設定しているクエリ設定では正しい数量の合計と金額の合計を出すことができません。どうか集計方法をご教授いただけないでしょうか。よろしくお願いします。 ■現在のテーブルの設計とリレーションを明記します。 【A】顧客テーブル (1)顧客ID (2)発注コード (3)氏名 【B】商品テーブル (1)商品ID (2)品名 (3)単価 【C】注文テーブル (1)注文ID (2)日付 (3)顧客ID 【D】注文明細テーブル (1)注文明細ID (2)注文ID (3)商品ID (4)数量 リレーション 【A】(1)-【C】(3) 【B】(1)-【D】(3) 【C】(1)-【D】(2)