• ベストアンサー

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

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

  • tmi
  • お礼率91% (224/244)

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

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

合計のコンとロールソースは、テーブルの合計にしてください。 単価と数量のテキストボックスにて変更時イベントを設定します。 Private Sub 単価_Change() 合計 = 単価 * 数量 End Sub Private Sub 数量_Change() 合計 = 単価 * 数量 End Sub 数量又は単価に入力時に合計が再計算されます。

tmi
質問者

補足

mshr1962さん 回答ありがとうございます。 >変更時イベントを設定します これは テキストボックスのプロパディの イベント タブのことでしょうか? そうだとして どこに 記入すれば よいのでしょうか? お願い します。

その他の回答 (3)

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

テーブルの単価と数量をフォームに読み込み合計を演算して合計もテーブルに保存したい。・・という事ですか? 合計フォームに単価と数量のフィールドを創り合計を表示するテキストボックスを1つ作ります。そのテキストボックスを仮にText1とします。 Text1のプロパティのコントロールソースに=[単価]*[数量]で演算値を表示させます。 レコードの保存ボタンとか閉じるボタンを作ります。 仮に保存ボタンをCmd1・閉じるボタンをCmd2とします。 このボタンのクリックイベントにフォーム上のText1の値をテーブルに書き込む記述を追加すれば出来ます。 (Me![合計] = Me![Text1] を追加します。フォームの合計フィールド名を合計にするとエラーになります。) 保存ボタンの場合。 Private Sub Cmd1_Click() On Error GoTo Err_Cmd1_Click   Me![合計] = Me![Text1]  '←この部分 DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Exit_Cmd1_Click: Exit Sub Err_Cmd1_Click: MsgBox Err.Description Resume Exit_Cmd1_Click End Sub 閉じるボタンの場合。 Private Sub Cmd2_Click() On Error GoTo Err_Cmd2_Click   Me![合計] = Me![Text1]  '←この部分 DoCmd.Close Exit_Cmd2_Click: Exit Sub Err_Cmd2_Click: MsgBox Err.Description Resume Exit_Cmd2_Click End Sub これで保存ボタンか閉じるボタンをクリックした時にテーブルに保存しに行きます。これが簡単に出来る方法です。 質問がこういう事でなかったら。ゴメンナさい。 >フォーム内 テキストボックス 非連結を連結に・・ 非連結を連結にするにはフォームのレコードソースに選択されているフィールドをコントロールソースにするしかありません。

tmi
質問者

お礼

O_cyanさん 回答ありがとう ございます。 私 アクセス勉強し始めて 一週間・・・・・・・ せっかく 書いてもらった ものですが 2-3ヶ月して 慣れたら 実行したいと思います ありがとうございました!

  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.3

質問の意味がよくわからないのですが、 テーブルの「合計」フィールドに(単価×数量)を入れたいということですか? よほどの事情がない限り、そのテーブルの「合計」フィールドは削除しましょう。 「合計」フィールドが、必ず(単価×数量)で計算できるなら、 その「合計」フィールドを持つことは、データの重複になります。 (なぜいけないかは、「正規化」をキーワードに調べてください。) (単価×数量)を表示したい場合はクエリを使います。 select 単価,数量,単価*数量 as 合計 from table; このクエリを、「合計」フィールド付きのテーブルとみなして 作業を進めます。

tmi
質問者

お礼

ngsvxさん 回答ありがとうございます アクセス勉強し始めて一週間・・・ がんばって クエリで動かせるよう 悪戦苦闘するつもりです・・

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

>これは テキストボックスのプロパディの イベント タブのことでしょうか? そのとおりです。 「イベント」タブの変更時で ▼をクリックして「[イベントプロシージャ]」を選択後 ・・・をクリックすると Private Sub テキストボックス名_Change() End Sub になりますので、数式を設定してください。

tmi
質問者

お礼

mshr1962さん なんとか できました ありがとうございました

関連するQ&A

  • Accessの計算について

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

  • access2010のフォーム上で計算したいです

    access2010 初心者です。 メインフォーム上に総合計を計算したいのですがどうしたらいいのか困ってます。 ***サブフォーム(テーブル1から表示しました)*** ・商品名(テーブル1から表示) ・金額(dlookupを使って「商品一覧表」から金額を表示しました) ・数量(テーブル1から表示) ・合計金額(コントロールリボンでテキストボックスを作り「金額」*「数量」で表示してあります) *********************** メインフォームに、サブフォームの「合計金額」の様にテキストボックスで、サブフォームの「合計金額」の『総合計』を表示したいです。 総合計がある一定の金額になるように、サブフォームの「数量」を決めて行きたいのです。だから、一定金額から『総合計』を引いて残金も表示したいのですが、『総合計』の求め方がわからなくて困っています。 総合計や合計金額はデータとしてテーブルには残らなくてもOKです。 初心者なので、できればわかりやすく簡単な方法がうれしいです うまく伝えれなくて不明な点があるかと思いますが、なにとぞお願いします

  • Access フォーム上でのテキストボックスとテーブルの連結

    フォームヴィザードからフォームを作成すると、 テキストボックスと指定したテーブルを連結させることができるのですが、デザインビューでそれをするときに、テキストボックスのプロパティのコントロールソースにテーブル名を入れれば連結できるのかと思いきや、うまく表示されません。どこを設定すればテキストボックスとテーブルを連結できるのでしょうか?

  • ACCESS2000 フォームとテーブル

    カテゴリを間違っていたので再度ご質問致します。 ACCESSのフォームなんですけど、 フォームとサブフォームがあり、サブフォームの数量の合計をフォームの合計に表示するように出来たのですが、 表示ではなく、テーブルに保存される形にしたいのですが・・。 テーブル T_(1) (1)No. (2)企業名 (3)合計 フォームのレコードソースは、T_(1)です。 今のやり方では、フォームで見ると表示されてますが、 テーブルの合計には保存されてません。 どうすればよいでしょうか? 今は、コントロールソースに、=[サブフォーム名].![テキスト名] にしています。

  • Access2000について

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

  • Accessでサブフォームの合計をメインフォームに

    Access2007で開発しています。 メインフォームにサブフォームを貼り付けており、 サブフォームに入力した「数量」「単価」から「金額」を計算して表示し、 その合計金額をメインフォームのテキストボックス(非連結)に表示しようと しています。 サブフォームは行単位で追加、削除が可能です。 サブフォームの更新結果が正しくメインフォームに表示されずに困っています。 おわかりの方、おられましたらお教え頂きたく、よろしくお願い致します。 【サブフォーム】   ・レコードソース:T_明細   ・[詳細]項目:数量・・・レコードソース=T_明細・数量        単価・・・    〃    =T_明細・単価        金額・・・数量および単価のAfterUpdateで計算して表示。    [フォームフッター]項目:金額計・・・コントロールソース=Sum([金額])   ・Vbaコード:   Private Sub Form_AfterUpdate()   Forms![メインフォーム].合計計算   End Sub   Private Sub Form_Delete(Cancel As Integer)   Forms![メインフォーム].合計計算   End Sub 【メインフォーム】  ・テキストボックス:「合計金額」(非連結) Public Sub 合計計算()    Me.サブフォーム.Requery   方法1: Me!合計金額 =DSum("金額", "T_明細", (キー項目指定 記述省略))   方法2: Me!合計金額 = Me![サブフォーム].[Form].[金額計] End Sub ここで、 方法1の場合:数量、単価の変更入力及び行追加は正しく動作するが、          行削除の後、メインフォームの「合計金額」が再計算されず、変更前のまま。 方法2の場合:数量、単価の変更入力及び行追加すると、「合計金額」が”0”になる。          行削除しても「合計金額」は変わらず、変更前のまま。 どちらも、サブフォオームの「金額計」は正しく表示されています。 以上、よろしくお願い致します。

  • ACCESSのテーブルとフォーム

    大変失礼ですが、いきなり質問です。よろしくお願いします。 テーブルに「受注データ」 フォームに「入力画面」というのを作ってあります。 そのフォームの一部に「商品金額」・「送料」・「消費税」・「合計金額」というテキストボックスがあります。それぞれのコントロールソースには単純にテーブルのデータを使うようにしてありますが・・・・・・「合計金額」のコントロールソースに「商品金額」・「送料」・「消費税」の合計を計算してくださいというような設定をしてしまったら、フォーム上ではしっかり計算をして表示してくれたのですが、テーブルの「合計金額」の列は空白になってしまいます。 テーブルの列が空白ではなく、フォームで表示されたその数値をテーブルの列に戻す?返す?という事を設定するにはどうしたら宜しいのでしょうか?是非ご教示下さいます様お願い申し上げます。ちなみにACCESS2000を使用しています。なぜかVBAの画面でヘルプを開こうとするとインストールされていないみたいで開かないんです。(←これ、余談です。すみません。)

  • フォームの計算結果をテーブルに反映させたい

    いろいろ試してやってみたのですが、VBA等がド素人の為に、応用がききません。 すみませんが、どなたか教えてください! フォーム【社員データ(実績入力)】にテキストボックスで作った非連結の計算式があります。 「合計提案件数」コントロールソース=nz([参加賞])+nz([F賞])+nz([E賞])+nz([D賞])+nz([C賞])+nz([B賞])+nz([A賞])+nz([ア参加賞])+nz([ア提案賞])+nz([ア努力賞])+nz([アイデア賞]) それをテーブル【T社員データ】の「合計提案件数」(数値型)という場所にデータを反映させたいです。 いろいろやってみたのですが、エラーばっかりです(><) ちなみに、このフォームは、【T社員データ】をクエリにして、職場検索をかけ、抜粋した職場のメンバーのみを、フォームで表示するようにしています。 質問内容をご理解いただけましたでしょうか。 すみませんが、宜しくお願い致します。

  • Access テキストボックスのフォームデザイン変更について

    はじめまして。最近になってAccessの基本の「キ」を勉強し始めました。 サイトを見ながら、課題になっているデータベースを作成しているのですがその中で、引っかかってしまった 下らない操作があります;; フォームデザインにて、「テキストボックスを追加して下さい」という指示があったのですが ツールボックスから「テキストボックス」を選択して、フォームに乗せると、下記のようになります。 尚、< > ←これは、フィールドの名称?みたいなもので、[ ] ←これが入力フォームみたいなものです。 フォームヘッダー ------------------ <商品CD> <商品名> <単価> <数量> <テキスト10> [非連結] <備考> 詳細 ------------------ [商品CD]    [商品名]   [単価]   [数量]                    [備考] <テキスト10>というのと、[非連結]というのが新しく追加されたテキストボックスなのですが、 フィールドで言う名称と、実際の入力フォームが横並びになってしまっています。 これを、他と同じように、名称はヘッダーに、入力フォームは詳細に置きたいのですがどのようにすればいいのでしょうか? プロパティを見てみたり、ShiftやCtrlやAlt等を押しながらも試しましたがどうにも出来なくてかなり困ってします…(>_<) 検索もしたのですが解決方法がわからず、どのようにしたらいいかご存知の方いらっしゃいましたらご教授願います。 よろしくお願いいたします。 (尚、この文章はフォントがMSPゴシックで作成しているのでそれ以外の方は上の図がかなりずれて見えると思います。すみません)

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

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

専門家に質問してみよう