• ベストアンサー

Access内で計算

Access2002を使用しています。 あるテーブルに「電話代」「宅急便代」「立て替え金計」という フィールドがあり、「立て替え金計」のフィールドには、自動的に 「電話代」「宅急便代」の合計が入るようにしたいです。 フォーム上でコントロールソースの式ビルドを使用すれば、合計は 表示されるのですが、テーブルには反映されません。テーブルに値を 反映させるにはどうすればよいでしょうか?

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

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

すいません。ちょっと多忙だったため返事遅くなりました。 >[フィールドA][フィールドB]どちらかを編集した時点で[立て替え金合計1]が更新 >され、イベントが起こる、ということでしょうか? [フィールドA][フィールドB]のどちらかを編集してもあくまでも[立て替え金合計1] の演算結果が変わるだけで更新したとの意味合いとは少し違います。 AかBを編集した場合、フォーム上の[立て替え金合計1]フィールドの表示の変更で コントロールソースの=[電話代]+[宅急便代]の演算結果が変更表示されているだけ です。 通常更新といえばテーブルに保存しに行く時点のことを指すと思うのですが。 この場合Me![立て替え金合計] = Me![立て替え金合計1]を記述してあるイベントに 処理が一致した場合テーブルに更新に行きます。 >Private Sub 立て替え金合計1_Click() >Me![立て替え金合計] = Me![立て替え金合計1] >End Sub この記述は[立て替え金合計1]のテキストボックスのプロパティに書いているのですか? テキストボックスではクリックイベントは発生しないと思ったのですが・・。 キークリック時のイベントに記述を書き直してください。 [立て替え金合計1]にタブ移動でフォーカスが移りEnterキーなどを押すとテーブル に更新に行くはずです。 後はMe![立て替え金合計] = Me![立て替え金合計1]のイベントを発生させるタイミ ングもあります。 処理の一番最後にMe![立て替え金合計] = Me![立て替え金合計1]のイベントを発生 する様にすれば一番問題がないと思います。例えばレコードの保存ボタンの記述に 追加するとか。

oom
質問者

お礼

ご解答ありがとうございました。 長くかかってしまい申し訳ありませんでした。 解決しました。やはりイベントの発生タイミングが悪かったようですね。 どうもありがとうございました。

その他の回答 (4)

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

>計算のみ「立て替え金計1」は、値が自動計算されたことで、更新、という扱いに >なるのでしょうか フォーム上のフィールドでコントロールソースに=[電話代]+[宅急便代]と設定して あると思うのですがフォーム上で演算された内容はテーブルには反映されずフォー ム上だけでの表示となるので演算値をテーブルに保存するにはテーブルのフィールド に書込みにいくイベントが必要になるためそのイベントが発生した時点で更新の扱い になります。

oom
質問者

補足

たびたび申し訳ありません。 Private Sub 立て替え金合計1_Click() Me![立て替え金合計] = Me![立て替え金合計1] End Sub というコードを入れているのですが、うまくいきません。 [フィールドA]と[フィールドB]の合計が[立て替え金合計1]に算出されるとしたら、[フィールドA][フィールドB]どちらかを編集した時点で [立て替え金合計1]が更新され、イベントが起こる、ということでしょうか? 何故うまくいかないのでしょう・・・。

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

フォームの「立て替え金計」のフィールドを「立て替え金計1」として「電話代」 「宅急便代」の合計を表示するようにして。 「立て替え金計1」のプロパティのイベントの更新後処理に me![立て替え金計]=me![立て替え金計1] とするか またはレコードの保存などのボタンのイベントの途中に me![立て替え金計]=me![立て替え金計1] を追加記述すればテーブルに書込みに行ってくれます。

oom
質問者

補足

返答が遅くなりもうしわけありません。 いろいろ試してみたのですが、更新後処理だとうまくイベントが起動しないようです。ためしにクリック時にイベントを設定してみたところ、うまくいきました。 計算のみ「立て替え金計1」は、値が自動計算されたことで、更新、という扱いになるのでしょうか?

  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.2

再びです。 以前私が回答したところですが参考になれば。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=286515

  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.1

フォームもしくはクエリで計算した値をテーブルに入れる場合は、テーブルを新たに作成するか、更新が必要になります。 更新クエリを作成してみてはいかがでしょうか?

関連するQ&A