Access97で受注管理のデータベースを設計中です。
フォームのテキストボックス[税込金額]のコントロールソースに
=Int([税抜金額]*[消費税率]*0.01+[税抜金額])
という式を入れました。
はたと気がついたら、基になるテーブルの[税込金額]には当然
(コントロールソースじゃなくなってしまったから)そこで
計算された値は更新されません。
テーブルにその値を更新したいのですが、そのためにはどのように
すればよろしいでしょうか?

基になるテーブルに[税抜金額][消費税率][税込金額]という項目が
あります。で、フォームを使用して入力時に税抜き金額を入力し、
消費税率を入力すると税込金額が小数点切り捨てで自動で入力される
という風に組めればフォームの中で計算できなくてもフォームで値が
表示されればかまいません。

要領を得ない質問でスミマセン。お手数ですが教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

イベントの意味について多少混乱されているようなので、補足説明をさせていただきます。



まず、更新前(BeforeUpdate)イベントですが、これはテキストボックスに対してと、フォームに対してで、意味が多少異なります。
フォームに対しての場合は、そのフォーム上でレコードが保存される直前に発生するイベントです。それではどんなときにレコードが保存されるのか?一つはカーソルが別のレコードに移動したとき、もう一つはレコードの編集中にフォームを閉じたときです。
(テキストボックスに対しては、HELPか参考書で勉強してみてください。)

ということで、私がお示しした方法ですが、イベントプロシージャは、テキストボックスではなく、フォームのイベントとして記述してください。この方法では、レコードが保存される直前に[税込金額]の値を書き換えて、その計算結果をテーブルに保存することになります。ですから、同じレコード内でカーソルを各テキストボックスの[税抜金額]、[消費税率]、[税込金額]のいずれかに移動しただけでは値は更新されず、別のレコード(新規レコードでもよい)に移動した時点で[税込金額]の値が計算され、テーブルの値も更新されることになります。

次に、変更時(Change)イベントですが、これは、そのテキストボックスに文字が入力された(削られたときも)時に発生します。

ということで、私の方法では別のレコードに移動しなければ[税込金額]の値が更新されないのに対して、maruru01さんが回答されている方法では、数字を入力した瞬間に更新されますので、即時性の点で、より使いやすいプログラムだと思います。
ただ、変更中のテキストボックスの値は、文字列としか認識できないため(数値として得ることができない)Clng()関数を使って数値データに変換するような工夫が必要になります。

[税抜金額]に一桁しか入力できないのは、一文字入力した時点で、Me!消費税率.SetFocus で強制的にカーソルの移動が行われているためです。その他多少の修正も必要のようですので、この方法に挑戦されるのでしたら、HELPのTextプロパティをよく読んでみてください。

これからVBAにチャレンジされるということでしたら、参考書の他に、k_ebaさんが紹介されているようなHPもとても勉強になります。
VBAは始めるとそれなりに奥が深いものもありますが、その分、自由度が高く、自分のアイディアが活用できるようになるとけっこうはまってしまったりします。ぜひがんばってください。(わからないことがあったら、また質問してください。中上級になって、私なんかの手におえないレベルになったら、かなり専門的なサイトがいくつもありますので、そちらもご紹介します。)
    • good
    • 0
この回答へのお礼

あまりの不勉強に皆様のお力ばかり頼ってしまい申し訳ありません。

ありがとうございました!
フォームの更新前処理に入力したら正しく計算されました!
(税込金額のテキストボックスの更新前処理に入れてました)
ご説明いただいたことも理解できなくてスミマセン。

社の受注管理は入力した時点では税込金額が表示できなくても
他のフォームを開いたりレポートを出力するときに情報が更新されていれば
問題ないので、ご紹介頂いた方法を利用させていただきます。

本当にありがとうございました。

お礼日時:2002/02/07 17:04

三度maruru01です。



yoishoさん、フォローありがとうございます。
取り急ぎのコードで、しかもこの欄に直接書いていったため、いろいろ不備があるようです。
変数をプロシージャレベルではなく、モジュールレベルで宣言するなどの対処が必要でしょう。
1桁ごとの計算はいろいろ工夫が必要ですが、全桁入力後いいなら(例えば税抜金額に"1200"と入力した後)、フォーカス喪失時イベント(Exit)あたりに記述するのがいいかも知れません。

choco_monakaさん、今はわからないことが多いと思いますが、yoishoさんの言うように、本や適当なサイトなどで勉強して、わからないことはここで質問しましょう。私のような素人に毛が生えた程度ではない詳しい人が教えてくれるでしょう。
では。
    • good
    • 0
この回答へのお礼

お世話になっております。
モジュールレベルの宣言‥?
お勉強します!

がんばってお勉強して今度こちらで質問するときは質問も
要領よくできるよう、またご指導いただいたことをちゃんと
意味を理解して入力できるようにしたいと思います。

皆様本当にありがとうございました。

お礼日時:2002/02/07 17:13

再び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を習うことをお奨めします。
教材は、本屋にいっぱいありますので、とりあえず、「はじめての~」とか、「~初級編」とか「よくわかる~」などと題したものを使うとよいでしょう。
がんばって下さい。
では。
    • good
    • 0
この回答へのお礼

度々お世話になっております。
ありがとうございました!
ご説明いただいたとおり、コードを記入しチェックしてみました。
きちんとテーブルにデータが入ってます!!!

はじめエラーが出ましたが、テーブルの税抜金額の通貨型を長整数型に
修正したら正しく計算できました。(As CurrencyにしてCCurに修正
したんですけどデバッグウィンドウから抜けられなくなってしまいました)

でもなぜか、フォームを閉じてもう一度開いて入力したら税抜金額に1桁しか
数字が入らなくて、(1文字入れると税込金額にカーソルが移動します。)
どこか違うテキストボックスを使って数字を入力してから税抜金額の欄に
コピーペーストしないと入力ができないようになってしまいました。
それって何がいけないんでしょう。もっとちゃんと‥せめてご説明頂いたこと
くらい理解できるよう、ご紹介いただいたように、早速今日は早めに上がって
VBAの本探しに行きます。確かにクエリ、マクロでできることにも限界あるかも
しれませんね。もっとお勉強します!

他に入力して税抜金額にコピーペーストするならフォームフッターに式を
入れてその値をコピーしたものを税込金額にペーストしてもらった方がいいかも?

もちょっと勉強してからまたご質問させてください
本当にありがとうございました。

お礼日時:2002/02/07 12:15

私もk_ebaさんのご意見に賛成なんですけど、どうしてもということであれば・・・。



[税込金額]テキストボックスのコントロールソースは[税込金額]としておいて、
単に更新前イベントで、
Me![税込金額] = Int(Me![税抜金額] * Me![消費税率] * 0.01 + Me![税抜金額])
としてやるのが、簡単かと思います。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。
更新前イベントに入れてみましたが、なぜか上手くいきませんでした。
forms![受注明細]![税込金額]‥でもダメで、式ビルダで税込金額=‥と
入れてもやっぱり上手くできませんでした。
また勘違いしてきっと見当違いな作業やってるんじゃないかと思います。
スミマセン。
もちょっとがんばってみます。
あるいはテーブル設計からも一度やり直すことも検討してみます。
本当にありがとうございました。

お礼日時:2002/02/07 09:30

こんにちは。

maruru01です。

テキストボックスのコントロールソースは元のまま([税込金額])にして、
税抜き金額と消費税率のテキストボックスのChangeイベントなどで、

Me!税込金額.SetFocus
Me!税込金額.Text = Int(Me!税抜金額.Text * Me!消費税率.Text * 0.01 + Me!税抜金額.Text)

とすればいいと思います。
もちろん、[表示]みたいなコマンドボタンを作って、そのクリックイベントに記述してもいいですし。
あ、そうそうご存知かも知れませんが、テキストボックスのTextプロパティはフォーカスをあてないと、参照および設定が出来ませんので、実際はそれぞれのChangeイベントで変数に代入しておくのがいいと思います。
では。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。
ヘルプをさんざん開いたんですけど「変数に代入する」やり方がわかりません。
コントロールの移動のマクロをヘルプを見ながら組んでみたのですが、
実行時エラーが出てしまいました。
きっと見当違いの事をしているんだと思います。
コードの書き方はまるでわかっていません。式ビルダがなんとなく使える程度
ですので大変申し訳ないのですが、噛んで含めるようにご教授頂ければ
ありがたいです。お手数おかけいたします。

お礼日時:2002/02/06 18:19

税込金額はデータベースの項目にしなければいけませんか?


税込み金額みたいに計算で求められる物はデータベースの項目に持たず
クエリーで追加するようにすれば例えば税率などが変わっても
クエリーを使用する時に再計算する為に基準値を変えればOKです

クエリーの使い方を勉強しましょう。
頑張って下さい

参考URL:http://www.people.or.jp/~Niki/, http://www.people.or.jp/~Niki/,

この回答への補足

本当はポイントをK_ebaさんにもにお入れしたいのですが、お二人を
選ばなければとのことですので、今回はyoishoさん、maruru01さんに
入れさせていただきたいと思います。

ご紹介いただいたサイトや本でもっとお勉強します。
本当にありがとうございました。

補足日時:2002/02/07 17:14
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございました。
実は基になるテーブルを使用して他のフォームでサブフォームを
作ったり、クエリーで計算したりしているのでテーブルに入力される
必要があるんです。また、Excelに書き出して受注表なんかも
作っていますので‥。
スミマセン。
はじめはクエリーで計算させて‥って考えたんですけど、税込金額を
クエリーで計算して作ったものを使用すると月締めの計算をする
クエリーを作ると「複雑すぎるから計算できないよ!」と文句を言ってきたり、
フォームにもコントロールが増えすぎてしまい、仕方なくフォーム内に
計算式を入れたらテーブルに当然反映しない‥はぁぁぁ。
できれば更新後処理とかで何とかならないかなぁと悩んでいます。

お礼日時:2002/02/06 18:01

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qなぜ消費税の税率変更に合わせたシステム投資の促進策が議論されないのでしょうか

政府与党は2011年4月以降に消費税の税率を変更する事を事実上決めました。
各野党は、そのことに対して反対をしていますが、全ての国会に議席のある政党は、時期と増減税の幅はバラバラですが消費税の税率変更と複数税率化の方針である事では一致しています。
そこで問題となるのが、消費税の税率変更が行われると会計システムの改修が必要になります。まして複数税率化となると大規模なシステム改修が必要になります。ハードウェアの準備は短時間で可能でしょうが、ソフトウェアの改修・開発は時間がかかると思われます。
又、時間がかかることは販売・請負金額の高額化を意味します。
そこで考えなければならないのがどうすれば販売・請負金額の低額化を図れるかと言う事になります。常識的な判断であれば開発期間の長期化・分散化が有効だと言う事になると思います。
この事から導き出される結論として、今から消費税税率変更の準備に取り掛かる必要があると言う事になると思います。
しかし、現在大規模に準備に取り掛かった形跡はありません。この原因の一つは、導入時期の未定のシステムに投資する余裕が無い事があると思います。
そこで、会計システムの改修投資を促進させる為の政策が必要となると思います。補助金や低利融資・耐用年数の短期化等の政策が考えられますが一つとして国会の場で議論されません。
何故この様な議題が議論されないのでしょうか。優先順位が低いとは思えません。なぜなら新たな雇用創出につながる政策だと思われます。
議論がなされないのは、野党各党は消費税の税率を変更するというのは口先だけで実現不可能と思っているのでしょうか。又、実現しなくて大丈夫だと思っているのでしょうか。
総選挙が近いので避けているのでしょうか。選挙で争点に出来ると思うのですが、もしくは全会派一致での政策実現が可能なものだと思うのですが。

政府与党は2011年4月以降に消費税の税率を変更する事を事実上決めました。
各野党は、そのことに対して反対をしていますが、全ての国会に議席のある政党は、時期と増減税の幅はバラバラですが消費税の税率変更と複数税率化の方針である事では一致しています。
そこで問題となるのが、消費税の税率変更が行われると会計システムの改修が必要になります。まして複数税率化となると大規模なシステム改修が必要になります。ハードウェアの準備は短時間で可能でしょうが、ソフトウェアの改修・開発は時間がかか...続きを読む

Aベストアンサー

IT屋です。

ぶっちゃけた話をしてしまうと、政治家でITに詳しい人がいないからというのが、最大の理由ではないでしょうか。
趣味で自作PC組み立てる方だとか(与謝野さん)、2chに書き込みしてたと自白した方(麻生総理)はいますが、システム構築にまではとても精通していないでしょう。

最近では大手企業でも欧米製のERPの導入が進んでいますが、しかしまだまだ自社で構築したシステムも多いです。
そういうシステムは消費税率の変更ということまで考慮した設計となっているかどうか、きちんと調べないとわからないと思います。

2000年問題の時はある大手SI会社で私も参加しましたが、もう会社を上げての大騒ぎでしたね。
マスコミが積極的に取り上げてくれたこともあり、実際に問題となったのはごくわずかで済みましたが、消費税率が実際に変更になった際も同じくらいの騒ぎとなることが予想されます。

ただし、実際に2000年問題の対応で動き出したのは、私の記憶ではせいぜい1年くらい前からであり、消費税率変更についても実際に業界が動き出すのは、やはり1年くらい前からになるのではないでしょうか。

他の方の回答にあるように、今消費税率引き上げについて時期を明確にしてしまうと、かえって将来の増税に備えて消費者が財布のひもを締めてしまうので、経済的には逆効果です。
3年たった時点で、経済が回復軌道にのったかどうかをきちんと検証し、本当に引き上げるのであればその時から時期を明確にすればよいかと思います。

ただ、質問者の懸念されている会計システムについては、上記で示したように大企業でもERPの導入が相当進んでいますので、いざとなったら全部SAPか何かに置き換えてしまえ! というある意味大胆な解決策がないわけではありません。
2000年問題と同じで、マスコミが騒ぐ割には実害はなかったという方向で落ち着きそうです。

IT屋です。

ぶっちゃけた話をしてしまうと、政治家でITに詳しい人がいないからというのが、最大の理由ではないでしょうか。
趣味で自作PC組み立てる方だとか(与謝野さん)、2chに書き込みしてたと自白した方(麻生総理)はいますが、システム構築にまではとても精通していないでしょう。

最近では大手企業でも欧米製のERPの導入が進んでいますが、しかしまだまだ自社で構築したシステムも多いです。
そういうシステムは消費税率の変更ということまで考慮した設計となっているかどうか、きち...続きを読む

Q入金額から消費税と源泉徴収税と税抜金額を出す条件分岐について

アクセスのクエリで入金額から税抜金額と消費税額と源泉徴収税額を計算する条件分岐式を教えて下さい。簡単な算数の問題だと思うのですが,上手くいきません。

入金額には,4つのパターンがあって,以下の計算式で税抜金額が求められると思います。ちなみに,税抜金額が100万円以上の場合は想定していないので,源泉徴収税は100万円までの場合として計算式を作りました。

  源泉徴収税 消費税 計算式
(1) ○     ○   入金額/0.95
(2) ○     × 入金額/0.9
(3) ×     ○ 入金額/1.05
(4) ×     × 入金額

これをクエリフィールドで求めるために,
税抜金額: IIf([源泉徴収税]=True,IIf([消費税]=True,Int([入金額]/0.95),Int([入金額]/0.9)),IIf([消費税]=True,Int([入金額]/1.05),[入金額]))
という式をクエリのフィールドに入力したのですが(2)の条件のときも(1)の計算式で計算されてしまいます。
どこが間違っているのでしょうか。初歩的な質問ですみませんが,ご回答お願いします。

アクセスのクエリで入金額から税抜金額と消費税額と源泉徴収税額を計算する条件分岐式を教えて下さい。簡単な算数の問題だと思うのですが,上手くいきません。

入金額には,4つのパターンがあって,以下の計算式で税抜金額が求められると思います。ちなみに,税抜金額が100万円以上の場合は想定していないので,源泉徴収税は100万円までの場合として計算式を作りました。

  源泉徴収税 消費税 計算式
(1) ○     ○   入金額/0.95
(2) ○     × 入金額/0.9
(3) ×     ○ ...続きを読む

Aベストアンサー

いわれたままに式を貼り付けたら 添付図のようになりました
式ビルダ
税抜金額: IIf([源泉徴収税]=True,IIf([消費税]=True,Int([入金額]/0.95),Int([入金額]/0.9)),IIf([消費税]=True,Int([入金額]/1.05),[入金額]))
なぜでしょうね?

Q平成20年4月の税率変更(20%)

平成20年4月の税率変更(10%→20%)による
投信への影響については、どうお考えですか?

 税率UP → 投資意欲減 → 売手 → 基準価格減?

平成20年2月か3月くらいまでに一旦キャッシュ化される予定の方は
みえますか?

また、特定口座へ預け入れできなくなったときに
ついても同様に基準価格は下がると思います?
(どれぐらいでしょうね?予想つけにくいですが)

Aベストアンサー

現時点では、現物株式を持っている人が売って買い戻す方法を取ると思いますが、投資信託の場合で分配を出すファンドの場合は、売って買い戻せば手数料負けする可能性もあるので、容易には売りが出せないと思います。
又、無分配で節税してきたファンドは、一旦、分配した方が有利になると判断するかも知れません。

いずれにしても、税金が高くなるので、節税を考える人は出てきますが、それによって、株価が大幅な下落に伴う基準価額下落は一時的と考えています。

むしろ、一時的に株価が大幅に下がるのなら、その時を狙って株式を買う人は出てくる筈です。
何故なら、株式投資の税金が上がる理由で、他に有利な投資が出来る理由があるのなら、そちらに資金が流れる可能性はあります。
しかし、それが無いのなら、その時点で最も有利な資産に流れると考えられますから、増税によって株式投資をする人が減ると言う説明は合理的ではありません。

又、税金を投資判断にするのは、投資判断を誤らせる原因になるので、その時の市場を冷静に見た方が無難です。

QOutlookで[全員に返信]をクリックすると、[宛先]と[CC]をす

Outlookで[全員に返信]をクリックすると、[宛先]と[CC]をすべて[CC]に入るように設定。

今までOutlookずっと愛用していますが、現在は最新版のOutlook2010を使用してます。

[全員に返信]をクリックすると、元メールの[送信元]と[宛先]が新メールの[宛先]に変わり、[CC]はそのまま引継ぎますが、元メールの[送信元]と[宛先]と[CC]を全部[CC]に入るように設定などありますか。

または、[送信元]だけを[宛先]にして、ほかはすべて[CC]に入ってもいいですが。

Aベストアンサー

>[全員に返信]をクリックすると、元メールの[送信元]と[宛先]が新メールの[宛先]に変わり、[CC]はそのまま引継ぎます

これって、Microsoftのメールソフトの仕様ですかね。
自分が受信したメールの宛先やCCであっても、Outlook Expressもそうなるようです。

私のメインのThunderbirdでは、自分が複数の宛先やCCに含まれている場合でも、それらの受信メールから「全員に返信」で、受信メールの「送信元」のみが、返信メールの宛先に入り、他の「宛先」や「CC」はすべてCCに表示されます。

>[送信元]だけを[宛先]にして、ほかはすべて[CC]に入ってもいいですが。

この部分での方法は、返信メールの宛先欄で、送信元以外をドラッグして選択して右クリックから切り取り、CC欄に右クリックから貼り付けするしかないと思います。

Q4月から賞与の税率変更?

4月から賞与の税率が大幅に上がると聞きました。
そこで教えていただきたいのですが、3月に支払われた賞与に関しては、年末調整のとき、遡って新税率で調整されていまうのでしょうか?

Aベストアンサー

参考記事。↓

参考URL:http://www.yomiuri.co.jp/atmoney/special/34/nenkin_020827.htm

Q[Access]複数のサブフォームで1つのテーブル

1つのフォームに複数のサブフォーム(sb1,sb2,sb3)があります。
そのサブフォームは1つの同じテーブルを参照しています。
そこで、sb1, sb2, sb3にデータを入力すると
全て別のレコードに書き込まれます。
これを1つのレコードに書き込む方法はないでしょうか?

簡単に、
sb1 には個人情報
sb2 には会社情報
sb3 にはメールアドレス
のようになっています。

これが
レコード1 個人情報
レコード2        会社情報
レコード3               メールアドレス

となってしまいます。
これを

レコード1 個人情報 会社情報 メールアドレス

とするにはどうしたらよいでしょうか??
よろしくお願いします。

Aベストアンサー

それぞれのサブフォーム更新後にリクエリーすればできそうな気がしますが。
ひとつの入力フォーム上に、同一テーブルを参照するサブフォームを複数置く設計は、No1で回答した方が述べているように、あんまりよい方法ではないと、私も思います。

Q来年からの株式の税率が20%になるようですが変更とかは無いのでしょうか?

ガソリンの暫定税率のように
株の税率引き上げも10%を維持することはできないのでしょうか?
このままだと今年で株を辞められる方が多くなるのではないでしょうか?
今年の12月くらいに利益確定で逃げといたほうが良いんでしょうか?

Aベストアンサー

特定口座・源泉徴収ありの場合、500万円までの利益なら、平成22年12月31日まで、現在と同じ特例措置があります。

>今年の12月くらいに利益確定で逃げといたほうが良いんでしょうか?
これは、相場の動向によりますので、何とも言えません。

Qアクセスでテーブル入力用のフォームを他のテーブルのレコードを参照しながら入力するには

こんにちわ
アクセスでテーブルのレコードを作成するのに
他のテーブルのレコードを引っ張ってきて
フォーム上で表示したいのですが
うまくいきません

たとえば、社員名テーブル(従業員番号と名前)
配属テーブル(従業員番号と営業所コード)
支社テーブル(支社名と営業所コードの上2桁)
営業所テーブル(営業所名と営業所コード)を作成しておきます

退職者が出るたびに
退職者テーブル用のフォームに
従業員番号を入力すると
フォーム上にその人の名前・支社名・営業所名が表示され
それを確認してから
その他のデータをその同じフォームに
入力したいのです
今、試しに作ったのは
テーブルに一度上書きしないとデータを引っ張ってこないの不便なのです

よろしくお願いします

Aベストアンサー

従業員番号・名前・営業所コード・支社名・営業所名を表示するクエリを作りそれを基にコンボボックスをフォーム内に作ります。
そのコンボボックスをコンボ1と名前を付けたとしてフォーム上の名前・営業所コード・支社名・営業所名の各フィールドにコンボボックスに表示される内容を出したい場合。
(従業員番号はコンボボックスを作る時に次のフィールドに保存するのところで従業員番号を指定しておいて)

Private Sub コンボ1_AfterUpdate()
名前 = コンボ1.Column(1)
営業所コード = コンボ1.Column(2)
支社名 = コンボ1.Column(3)
営業所名 = コンボ1.Column(4)
End Sub
上記の記述を更新後処理にすれば出来ます。
試してみてください。

Q何故、所得税の税率変更を考えないのだろうか

 来年度の税制改正の大綱が決まったようですが、所得税の税率については、一切考慮されていません。その理由を知りたいのが第一点です。
 消費税が導入される前年の昭和63年では、所得税の税率は課税所得が5千万円超60%から百五十万円以下10.5%と12段階になっていましたが、平成21年では、千八百万円超40%から百九十五万円未満で5%の6段階になっています。
 この差は高額所得者にとって有利になっています。課税所得別に試算してみますと、1億円で5千3百万円、5千万円で2千3百万円、1千万円で2百33万円、5百万円で78万円、3百万円で38万円です。
 そこで、余裕のある高額所得者に負担していただく税制を提案したいのですが、どのような税率にすれば、歳入としてどのくらいの金額になるのか試算してみたいと思います。
 そのためには、所得金額別の所帯数のデーターを求めたく、インターネットで探したいのが、質問の第二点です。

Aベストアンサー

1点目
まず民主党のマニフェストに累進課税の強化が書いてない。
とりあえず政権交代を目指してた民主党には、金持ちを敵に回す
余裕がない。現在でも政権を運営するだけで精一杯で累進課税強化は
ムリでしょう・・・
早くても来年夏の参院選後でしょうね。

オバマ大統領のアメリカが新自由主義をやめて、累進課税を
強化するのを見届けてから、日本でも累進課税を強化する流れに
なるんじゃないでしょうか。
リーマンショックで新自由主義は大失敗、トリクルダウンや喜捨、
ノブレスオブリージュなんてものは、機能しないとわかったんですし。

2点目
所得の分布状況 平成20年度
http://www.mhlw.go.jp/toukei/saikin/hw/k-tyosa/k-tyosa08/2-2.html
統計データ > 日本の統計 > 第2章 人口・世帯
http://www.stat.go.jp/data/nihon/02.htm
日本の世帯数は平成17年で4906万3000世帯なので、
所得の分布率にこれを掛け合わせれば、それぞれの
階級別に世帯数がわかります。

1点目
まず民主党のマニフェストに累進課税の強化が書いてない。
とりあえず政権交代を目指してた民主党には、金持ちを敵に回す
余裕がない。現在でも政権を運営するだけで精一杯で累進課税強化は
ムリでしょう・・・
早くても来年夏の参院選後でしょうね。

オバマ大統領のアメリカが新自由主義をやめて、累進課税を
強化するのを見届けてから、日本でも累進課税を強化する流れに
なるんじゃないでしょうか。
リーマンショックで新自由主義は大失敗、トリクルダウンや喜捨、
ノブレスオブリージュな...続きを読む

Q[Access]あるフォームのクラスモジュールで値を入れた変数を他のフォームでそのまま利用したい

モジュールとクラスモジュール(イベントプロシージャ)に違いがあることや、モジュールを超えて変数を利用したいときは、Publicで宣言する、という辺りを本を読んでおおまかに理解しました。
帳票管理フォームというフォームに受付CDという主キーの番号があります。そのフォーム上に帳票の詳細な事項を入力するフォームを呼び出すボタンがあります。フォームのイベントプロシージャの一番上のOption Compare Database,Option Explicitの直下行にPublic UketukeCD as Integerと宣言し、
ボタンのイベントプロシージャで、
UketukeCD = Me![受付CD].Value
などと記述しました。
新規入力データの受付CDが例えば452ならUketukeCDには452が代入されればいいんです。
帳票の詳細な事項を入力するフォーム(報告書フォームとします)の「読みこみ時」のイベントプロシージャに以下のように記述しました。
こちらのモジュールの一番上にもPublic UketukeCD as Integerと宣言し、(←これは必要なんでしょうか?)
Me![受付CD].Value = UketukeCDと書きました。
過去のデータを検索するときはレコードソースのテーブルの受付CDのデータを受付CDフィールドに持ってき、新規入力の場合は、受付CDは帳票管理フォームのものを代入するという設計で、UketukeCDの値(例:452)を報告書フォーム内の受付CDフィールド内に出力する、という感じですが、なぜかUketukeCDにはいつも0が代入されています。
変数は他のモジュールで利用できても代入された値までは移行されないのですか?
イベントプロシージャだからできないんですか?
字数の制限上、コードをかなり省略しています。
足りない部分は補足で補いますのでおっしゃって下さい。

モジュールとクラスモジュール(イベントプロシージャ)に違いがあることや、モジュールを超えて変数を利用したいときは、Publicで宣言する、という辺りを本を読んでおおまかに理解しました。
帳票管理フォームというフォームに受付CDという主キーの番号があります。そのフォーム上に帳票の詳細な事項を入力するフォームを呼び出すボタンがあります。フォームのイベントプロシージャの一番上のOption Compare Database,Option Explicitの直下行にPublic UketukeCD as Integerと宣言し、
ボタンのイベントプロシ...続きを読む

Aベストアンサー

どうも変数のスコープ(変数の有効範囲)を理解していないようですね。
例えば
------モジュールのモジュール1
Option Compare Database
Public a As Integer
Sub aaa()
a = 3
End Sub

------フォーム1のモジュール
Option Compare Database
Public a As Integer
Private Sub Form_Load()
Dim a As Integer
a = 1
MsgBox CStr(a)
End Sub

Private Sub コマンド1_Click()
a = 2
Call aaa
End Sub

Private Sub コマンド2_Click()
MsgBox CStr(a)
End Sub

-------フォーム2のモジュール
Option Compare Database

Private Sub Form_Load()
MsgBox CStr(a)
End Sub


ではこれをフォーム1を開いて、ボタン1を押して、ボタン2を押して、フォーム2を開くと
メッセージボックスは



との順で表示されます。

これはスコープが
関数内が宣言
フォーム共通の宣言
DB全体(モジュール)の宣言

の順に優先度が高いためです。一番したが一番低い
各々スコープは

関数内は
sub

End sub
が有効範囲で

フォーム共通の宣言は同一フォーム内で有効

モジュールの場合は同一DB内で有効です。

通常、Publicを宣言して別のフォームに値を渡す場合はモジュールにPublic宣言をします。

よって今回の場合はフォームAにPublic変数を定義してもフォームBに対しては有効では有りません。
このような場合はモジュールでPublic変数の定義をする必要があります。

フォーム内は宣言不要!!

どうも変数のスコープ(変数の有効範囲)を理解していないようですね。
例えば
------モジュールのモジュール1
Option Compare Database
Public a As Integer
Sub aaa()
a = 3
End Sub

------フォーム1のモジュール
Option Compare Database
Public a As Integer
Private Sub Form_Load()
Dim a As Integer
a = 1
MsgBox CStr(a)
End Sub

Private Sub コマンド1_Click()
a = 2
Call aaa
End Sub

Private Sub コマンド2_Click()
MsgBox CStr(a...続きを読む


人気Q&Aランキング