- ベストアンサー
ACCESSで計算結果を格納する方法
こんにちわ。いつもお世話になっております。 うまく説明できないのですが、フォームに入力した金額などを、Sum計算式で合計や粗利などをだせるようにテキストボックスにつくりました。 この数値をテーブルに格納したいのですが、そういう方法はあるのでしょうか。 「演算結果をテーブルに格納」というタイトルで質問されていらっしゃる方の回答を参考にしてみたのですが、うまくいきません。 いろいろ触っているうちに 「イベントプロパティに指定した式クリック時でエラーが発生しました。名前が適切ではありません:レコードの保存_Click」というエラ 「"LinkMasterGields/リンク親フィールド"プロパティの設定でエラー'名前が適切ではありません:レコードの保存_Click'が発生しました。」というエラーが出始めました。出る前に記述したところをなおしたつもりですがそれでもでてきます。 上司は「エラーが出てくるようになったら進んでいる証拠だから」とのんきなのですが、猶予をいただいてずいぶんたつのでそろそろ形にしていかなくてはと恥をしのんでいろいろ質問させていただこうと決意しました。どうぞよろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
ANo.3&5です。 平日は夜しかアクセスできませんので、あしからず。 >これは新しい質問を立て直した方がよいのでしょうか…? 新しいご質問では、ぜひ具体的にお書き下さい。 Accessの達人が大勢いらっしゃいますので。
その他の回答 (5)
- mitarashi
- ベストアンサー率59% (574/965)
ANo.3です。 メインのテーブルの構造は、請け負った仕事のID、同案件名、作業項目... サブのテーブルは、請け負った仕事のID、個別案件名、希望金額、締め切り日... メインテーブルの単票フォーム内のサブフォームに、サブテーブルを帳票形式で表示して、個別案件を入力する。サブフォーム内のレコードの各案件の希望金額の合計や支払金額、粗利などを計算して、サブフォーム内のテキストボックスに表示させている、サブフォーム内のコマンドボタンを押すと、計算結果をメインフォームのフィールドに転送したい。 下記の様なコードを書いたが、どこで、どんなエラーが出てNG というように具体的に書いていただかないと、凡人には分かりません。抽象的なご質問には、抽象的な回答しか返せないと思います。
お礼
ご回答ありがとうございます。 いま自分がどの段階でつまづいているのかよくわかっていなくて抽象的な質問になってしまって申し訳ありませんでした。 今の説明で、なんか確かにそんな感じだなと思いました。まとめていただいてありがとうございます。だからうまく説明できないという感じでしたが、これですっきりしました。そうなんです、計算結果をメインフォームのフィールドに送りたいのですが、どうにかしてできる方法はないでしょうか?お礼に質問をつけるのは大変失礼だとおもいますが…これは新しい質問を立て直した方がよいのでしょうか…? いたらなくて本当にもうしわけありませんでした。
- Dxak
- ベストアンサー率34% (510/1465)
> イベントでフィールドへ値を入れるというのはどういうことでしょう。 非表示の連結コントロールへイベントで値を書き込んだり、レコードソースにつかってるフィールドへ直接書き込んだりと言う話ね Accessを使うなら、テーブルとクエリの話で7割方片付くよ フォームとレポートは、使い勝手の話が主になって、データの話は、こちらでは殆どしないから・・・ DAO、ADOとかの話が出てくると、また話が変わってくるけど・・・ 大体、テーブル構造の失敗的な話が、私の場合多いかな? 大半出来上がった後で、気が付いて収拾付かなくて、DAOorADOで追っ付け仕事にするパターン
お礼
ご回答ありがとうございます。 やはりクエリで計算させるか、テーブルの構造を根本的に変えてしまうしかないのですね…
- mitarashi
- ベストアンサー率59% (574/965)
どういうフォームなのでしょうか。テーブルやクエリを元にした単票のフォームなら、計算結果を対応するフィールドに入れてやるだけで済むと思うのですが...それとも、テーブルやクエリとは全く独立したフォームで、テーブルに格納する部分を全て記述しなければならないのでしょうか。 #1さんのご指摘の通り、テーブルには入力した金額だけを保存し、計算はクエリで実行させるのが普通だと思うのですが、何か特殊な事をしたいのでしょうか。 状況の説明が不足していると思います。
補足
回答ありがとうございます。 どういうフォーム…請け負った仕事の案件名や作業項目がを入力するテーブルの中に、その案件の中の各々の名前や希望金額、締め切り日などが入れられる様になったテーブルを入れ込んだフォームです。出した計算はその中に入った案件の合計や支払金額、粗利などを計算式で表示させています。 クエリはいっさい使用していません。 格納して何がしたいのか…うーんと、データとして残したい? あえていうと、この後、これを元に一覧表ができるようにしたいのです。 受注先/作業項目/受注名/受注日/完了日とここまでメインでテーブルがあってこの先に、計算結果の見積金額/外注支払い/請求金額/入金金額/粗利が横にならんだクエリかレポートを作って一目でみられるようにしたいのです。
- bonaron
- ベストアンサー率64% (482/745)
> 名前が適切ではありません このエラーは、同じ名前のプロシージャが 複数存在する場合に発生します。
お礼
回答ありがとうございます。 なんとなくこころあたりがあります。テストで作っているので同じようなのをちょっとバージョンを代えて作ったのでそのせいかもしれません。
- Dxak
- ベストアンサー率34% (510/1465)
普通、計算で、算出可能なものは、テーブルに保管しません ですので、そう言うのは、想定して無いのですが・・・ 通常、更新クエリ、追加クエリで、結果を保管しますので、イベントの話が、出てくると言うことは・・・ DoCmd.RunSQL "SQL文" CurrentDb.Execute ("SQL文") の、どちらかで、追加or更新クエリ動作と言う話でしょうね イベントで、フィールドへ値を入れると、言うのも出来なくは無いけど・・・1つづつ実行すると言うのも変でしょ?
お礼
ご回答ありがとうございます。 ごめんなさい。なんかいろいろアクセスとかのサイトの見過ぎで頭がパンクしちゃってクエリとかイベントとかいわれてもいまいちピンとこないのです。 計算で算出可能なものはテーブルに保管しないんですねぇ… イベントでフィールドへ値を入れるというのはどういうことでしょう。
お礼
ご回答ありがとうございます。 わざわざお返事をいただいているだけでもありがたいとおもっております。どうもありがとうございます。 新しい質問をたてさせていただきます。 ありがとうございました。