• ベストアンサー

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

maruru01の回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

再びmaruru01です。 ちょっとくどい書き方をしますので、適度に読み飛ばしてください。 まず、テキストボックスの上で右クリックするとプロパティシートが表示されますので、その中のイベントタブをクリックします。 イベントの中の"変更時"の白い四角の部分をクリックすると、右側にボタンが2つ現れます。その右側のボタン(…)をクリックすると、ビルダの選択ダイアログが表示されます。(式ビルダが使えるということなので、ここまではご存知かと思います。) ここで、コードビルダをクリックすると、画面が切り替わり、VBEのモジュールシートが現れ、 Private Sub 税抜金額_Change() End Sub と書かれていると思います。 これは、テキストボックス[税抜金額]の値が変更されると実行されます。中に実行したい動作を記述していきます。 ここに次のように書きます。 Private Sub 税抜金額_Change() Dim NoTaxAmount As Long Dim TaxRate As Long NoTaxAmount = IIf(Me!税抜金額.Text = "", 0, CLng(Me!税抜金額.Text)) Me!消費税率.SetFocus TaxRate = IIf(Me!消費税率.Text = "", 0, CLng(Me!消費税率.Text)) Me!税込金額.SetFocus Me!税込金額.Text = Int(NoTaxAmount * TaxRate * 0.01 + NoTaxAmount) End Sub テキストボックス[消費税率]も同様に、コードビルダを選択して、 Private Sub 消費税率_Change() Dim NoTaxAmount As Long Dim TaxRate As Long Me!税抜金額.SetFocus NoTaxAmount = IIf(Me!税抜金額.Text = "", 0, CLng(Me!税抜金額.Text)) Me!消費税率.SetFocus TaxRate = IIf(Me!消費税率.Text = "", 0, CLng(Me!消費税率.Text)) Me!税込金額.SetFocus Me!税込金額.Text = Int(NoTaxAmount * TaxRate * 0.01 + NoTaxAmount) End Sub NoTaxAmountとTaxRateが変数で、好きな名前をつけられます。Dimの分で使用出来るようにします。 また、この場合は、Private Sub ~End Sub(このかたまりをプロシージャと言います。)のなかでのみ使用出来るので、2つのプロシージャの変数は名前が同じでもまったく別と思って下さい。 その他のいろいろなキーワード(Long,SetFocus,IIfなど)は、ヘルプを参照して下さい。 今回の例では、税抜金額、消費税率のどちらかに数値を入力すると、両方に数値が入っている場合は計算結果が表示され、どちらかに何も入力されていなければ、0になります。 Accessでは、クエリやマクロだけではやることに限界がありますので、VBAを習うことをお奨めします。 教材は、本屋にいっぱいありますので、とりあえず、「はじめての~」とか、「~初級編」とか「よくわかる~」などと題したものを使うとよいでしょう。 がんばって下さい。 では。

choco_monaka
質問者

お礼

度々お世話になっております。 ありがとうございました! ご説明いただいたとおり、コードを記入しチェックしてみました。 きちんとテーブルにデータが入ってます!!! はじめエラーが出ましたが、テーブルの税抜金額の通貨型を長整数型に 修正したら正しく計算できました。(As CurrencyにしてCCurに修正 したんですけどデバッグウィンドウから抜けられなくなってしまいました) でもなぜか、フォームを閉じてもう一度開いて入力したら税抜金額に1桁しか 数字が入らなくて、(1文字入れると税込金額にカーソルが移動します。) どこか違うテキストボックスを使って数字を入力してから税抜金額の欄に コピーペーストしないと入力ができないようになってしまいました。 それって何がいけないんでしょう。もっとちゃんと‥せめてご説明頂いたこと くらい理解できるよう、ご紹介いただいたように、早速今日は早めに上がって VBAの本探しに行きます。確かにクエリ、マクロでできることにも限界あるかも しれませんね。もっとお勉強します! 他に入力して税抜金額にコピーペーストするならフォームフッターに式を 入れてその値をコピーしたものを税込金額にペーストしてもらった方がいいかも? もちょっと勉強してからまたご質問させてください 本当にありがとうございました。

関連する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を記述しているコントロールソースから 改行でコードを入力すればよいのでしょうか? ご教示いただければ幸甚です。 よろしくお願いいたします。