• ベストアンサー

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

yoishoの回答

  • ベストアンサー
  • yoisho
  • ベストアンサー率64% (331/516)
回答No.5

イベントの意味について多少混乱されているようなので、補足説明をさせていただきます。 まず、更新前(BeforeUpdate)イベントですが、これはテキストボックスに対してと、フォームに対してで、意味が多少異なります。 フォームに対しての場合は、そのフォーム上でレコードが保存される直前に発生するイベントです。それではどんなときにレコードが保存されるのか?一つはカーソルが別のレコードに移動したとき、もう一つはレコードの編集中にフォームを閉じたときです。 (テキストボックスに対しては、HELPか参考書で勉強してみてください。) ということで、私がお示しした方法ですが、イベントプロシージャは、テキストボックスではなく、フォームのイベントとして記述してください。この方法では、レコードが保存される直前に[税込金額]の値を書き換えて、その計算結果をテーブルに保存することになります。ですから、同じレコード内でカーソルを各テキストボックスの[税抜金額]、[消費税率]、[税込金額]のいずれかに移動しただけでは値は更新されず、別のレコード(新規レコードでもよい)に移動した時点で[税込金額]の値が計算され、テーブルの値も更新されることになります。 次に、変更時(Change)イベントですが、これは、そのテキストボックスに文字が入力された(削られたときも)時に発生します。 ということで、私の方法では別のレコードに移動しなければ[税込金額]の値が更新されないのに対して、maruru01さんが回答されている方法では、数字を入力した瞬間に更新されますので、即時性の点で、より使いやすいプログラムだと思います。 ただ、変更中のテキストボックスの値は、文字列としか認識できないため(数値として得ることができない)Clng()関数を使って数値データに変換するような工夫が必要になります。 [税抜金額]に一桁しか入力できないのは、一文字入力した時点で、Me!消費税率.SetFocus で強制的にカーソルの移動が行われているためです。その他多少の修正も必要のようですので、この方法に挑戦されるのでしたら、HELPのTextプロパティをよく読んでみてください。 これからVBAにチャレンジされるということでしたら、参考書の他に、k_ebaさんが紹介されているようなHPもとても勉強になります。 VBAは始めるとそれなりに奥が深いものもありますが、その分、自由度が高く、自分のアイディアが活用できるようになるとけっこうはまってしまったりします。ぜひがんばってください。(わからないことがあったら、また質問してください。中上級になって、私なんかの手におえないレベルになったら、かなり専門的なサイトがいくつもありますので、そちらもご紹介します。)

choco_monaka
質問者

お礼

あまりの不勉強に皆様のお力ばかり頼ってしまい申し訳ありません。 ありがとうございました! フォームの更新前処理に入力したら正しく計算されました! (税込金額のテキストボックスの更新前処理に入れてました) ご説明いただいたことも理解できなくてスミマセン。 社の受注管理は入力した時点では税込金額が表示できなくても 他のフォームを開いたりレポートを出力するときに情報が更新されていれば 問題ないので、ご紹介頂いた方法を利用させていただきます。 本当にありがとうございました。

関連するQ&A

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

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

  • フォームの計算がテーブルに反映するには?

    Windows2000/ACCESS2000を使用してます。 フォームで自動的に合計や消費税が計算されるように設定しましたが、保存されたテーブルを見てみると合計や消費税は空白になっていて計算された値が入力されてませんでした。 フォームでの計算式は以下のように設定しました。 合計のフィールドを選んで、プロパティを開きその中のデータタブのコントロールソースに式ビルダーで、 =A+B と設定しました。フォーム上では計算されるの ですが・・・ どのようにしたらテーブルに計算された値が表示されるのでしょうか? 宜しくお願いします。

  • 「Access」で、式が入っているテキストボックスに直接入力したい。

    「Access2000」を 使用しています。 まだ「アクセス」を使い始めたばかりなので、 分からないことが多いのですが…。 「フォーム」で、 「税抜き」というテキストボックスの コントロールソースに関数 (=Int([税込み]/1.05+0.9))を入れました。 これで「税込み」価格を入力すると 自動的に「税抜き」価格が表示されるようには なったのですが、「税抜き価格をダイレクトに 入力したいケース」が出てきて困っています。 「Excel」の場合、 式の上に直接入力すれば、式が消えて 値を直接打ち込むことが出来ますが、 「アクセス」の場合は式が入っている テキストボックスに、値を直接入力 することは出来ないのでしょうか?

  • Access2003 フォームについて

    Access初心者です。ご存知の方がいらっしゃいましたら教えて下さい。 内税と外税の計算について 現在請求書を作成するmdbを制作しております。 メインフォームに「小計」、「消費税」、「合計」という項目があります。 それぞれの詳細は以下のとおり。 ●「小計」のコントロールソース→=[Q-請求明細 サブフォーム]!合計金額 ●「消費税」のコントロールソース→=[小計]*0.05 ●「合計」のコントロールソース→=[小計]+[消費税] 同じメインフォーム上に「内税」と「外税」というオプションボタンを配置して、 「内税」にチェックを付けた場合は、「消費税」が計算されない。 「外税」にチェックを付けた場合は、「消費税」が計算される。 このような仕様にしたいと思い作っているのですが、どのように作成すると良いか 分かりません。 ご存知の方がいらっしゃいましたら是非教えて下さい。 不足箇所がありましたら追記致します。

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

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

  • アクセス: フォーム上で計算した数字をテーブルに保存したい。

     こんばんは。また質問させてもらいます・・。 これがアクセスに関して、最後の質問になるようにしたいです!!  さて、フォームに入力したものは自動的にテーブルに保存されます。 しかし、フォーム上で計算したものは、テーブルに反映されていませんでした。 過去の質問にフォーム上計算したものは、テーブルに反映されないということがわかりました。 では、一体どうすればいいのでしょうか。  フォームのコントロールソースには =([QTY]*[COST]) 数量*値段を入れています。 どうすれば、テーブルに表示できるでしょうか。 ご教授お願いいたします。 過去の質問は、こちらを参考しました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1002073

  • フォームにて自動計算したい・・・

    自力でネットで調べてある程度まで完成しましたが、合計金額の計算式がわからない為詰まりました・・・ まず、オークションで落札された代金を入力してもらうと、合計・消費税・税込み合計が表示される。 その次に発送先を選択されると、合計・消費税・税込み合計が更新(再計算)される・・・ というようにしたいのですが・・・ まったくわからず困っております(^^;お助けください

  • ピボットテーブルで小計と合計が合わない

    おねがいします。ピボットテーブルで購入先別、購入品別に税抜き額と消費税率1.1を記入した表から、税込み額を集計したのですが、A社の製品別の税込み額を足してもA社合計税込み額と合いません。(1.1×100+1.1×200=330なのに集計表では660になっている) この原因はピボットテーブルの計算ではA社合計額は税込み小計額の合計(正しい計算方法)ではなく、消費税率の合計(1.1+1.1=2.2)×税抜き額合計(100+200=300)をしているからですが、どうしたら正しい方法で計算するようにできるでしょうか?

  • 税率UPに伴うリベート計算の仕方と説明方法

    これまでクライアントに対して税込売上の8%をリベートとして支払っていました。今後、消費税率が順次UPされることに伴い、支払金額はそのままにリベート率をUPさせて税抜金額に対してリベート率を掛けたいと思います。 計算方法としては・・・ (1)10,500円(税込売上)*8%(税込時リベート率)=840円(リベート支払金額) (2)10,000円(税抜売上)*x%(税抜時リベート率)=840円(リベート支払金額)                             x=8.4%(税抜時のリベート率) でいいと思うのですが、先方は・・・ 消費税の5%を引いて、そこに税込時のリベートを乗せるのだから 5%(現在の消費税率)+8%(税込時リベート支払率)=13%(税抜時のリベート率) と主張します。 13%を(2)に代入すれば (2)10,000円(税抜売上)*13%(税抜時リベート率)=1,300円(リベート支払金額) となり、(1)とイコールにならないので間違いだとは思うのですが、13%とする考え方のどこに間違があるのかわからずうまく説明できません。 計算や数字の苦手な人にもわかってもらうためには、どのように説明すればよろしいでしょうか?ご教示ください。 もしかして、こちらが間違ってますか?

  • Access2010フォーム関数からテーブル入力

    アクセス2010について過去からの質問があまりないようですので 浅学ながら質問させていただきます。 フォームのテキストボックス内にて DlookUp関数で返した値を、 "Aテーブル"へ自動で入力したいのですが、 そのような関数はあるのでしょうか? また、このような操作は Dlookupを記述しているコントロールソースから 改行でコードを入力すればよいのでしょうか? ご教示いただければ幸甚です。 よろしくお願いいたします。