モジュールとクラスモジュール(イベントプロシージャ)に違いがあることや、モジュールを超えて変数を利用したいときは、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が代入されています。
変数は他のモジュールで利用できても代入された値までは移行されないのですか?
イベントプロシージャだからできないんですか?
字数の制限上、コードをかなり省略しています。
足りない部分は補足で補いますのでおっしゃって下さい。

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

A 回答 (1件)

どうも変数のスコープ(変数の有効範囲)を理解していないようですね。


例えば
------モジュールのモジュール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変数の定義をする必要があります。

フォーム内は宣言不要!!
    • good
    • 0
この回答へのお礼

回答ありがとうございます!!
上記のプログラムを新規に作ってみて試してやっとわかりました。
例えばフォーム1を開いた後、すぐにコマンド2をクリックすると、
(無知な私は1が出ると思った)0が出るのは、
フォーム1のモジュールの
Dim a As Integer

End Sub
はコマンド2には適用されないからですね。
適用範囲がそうなっていたんですね。
マイクロソフトのオフィシャルマニュアル読んでも
なかなか理解できなかったんです。
おかげさまでうまくVBAで作り上げることができました。
お礼を申し上げます。

お礼日時:2001/11/16 12:25

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

QD7alt

ジャズベースの教則本にD7alt G7altのように7thコードにaltがついたコードがたびたび出てきますがこれはどのようなコードでしょうか?ご存知の方宜しくお願いします

Aベストアンサー

altはオルタードのことです.
コードとしては,単にD7です.

なんですが,アドリブのときには,オルタードスケールでアドリブを取ることが多い(あるいは,テーマのメロディー自体がオルタードスケールになっていることも)ので,ベースはフロントがどう演奏するかをよく聞いてうまく反応しなさい,てことです.

Dオルタードスケールというのは,具体的には
D E♭ F F♯ A♭ B♭ C D
というスケールなんですが,これは,つまり「裏コード」ってやつです.楽譜上はD7なんですけど,実際にはA♭7(あるいはE♭m7)で演奏します.
なんで,ベースラインも単純にD7のスケールではなくて,オルタードスケールの音を使ったウォーキングをします.あるいは完全にわりきって,コード自体がA♭7だと思ってベースラインをつけるのも可です.

ジャズでは,2-5-1の形になっているときの,2-5は,わざわざaltなんて書いてなくても,演奏者が勝手にaltにしてしまってもいいです.
それを,わざわざaltって書いてあるってことは,そこは絶対にオルタードの音にしてほしいっていう編曲者の意思の表れなんでしょうから尊重してあげましょう.
まあ,教則本なんでオルタードに変えてもよい7thすべてにaltって書いてある,ってことなのかもしれませんが.

altはオルタードのことです.
コードとしては,単にD7です.

なんですが,アドリブのときには,オルタードスケールでアドリブを取ることが多い(あるいは,テーマのメロディー自体がオルタードスケールになっていることも)ので,ベースはフロントがどう演奏するかをよく聞いてうまく反応しなさい,てことです.

Dオルタードスケールというのは,具体的には
D E♭ F F♯ A♭ B♭ C D
というスケールなんですが,これは,つまり「裏コード」ってやつです.楽譜上はD7なんですけど,実際にはA♭7(あるいはE♭...続きを読む

Q標準モジュールにpublicで宣言するしかない?

フォームモジュールと標準モジュールで同じ変数を使って値を行き来したい場合、
標準モジュールにpublicで宣言するしかないのでしょうか?

【フォームモジュール】
Private Sub cmd_コマンド0_Click()
test = "aaa"
Call 標準モジュールtest
End Sub

【標準モジュール】
Public test As String
Sub 標準モジュールtest()
MsgBox test
End Sub

でいいのですか?

Aベストアンサー

> 標準モジュールにpublicで宣言するしかないのでしょうか?

例えば、「自身のPath」のように実行後の変動がないものや、
「ファイルのプロパティ」のように呼出元によらず共通になるもの
などは、「標準モジュールにPublicで宣言」でいいと思いますが、
「ある処理の開始時間と終了時間」のように【都度変化する
値】のような場合は「SubやFunctionの引数として渡す」という
方法を採った方がよいかと思います。
(そうした方が、「うっかり古いままの値を使用してしまった」と
 いった失敗を防げる、と)

この場合、「フォームモジュールのSubの中」と「Subの引数」の
2箇所で、同じ値を受け取る変数を宣言することになります。
(もしくは、下で「または~」としたように、フォームモジュール側での
 変数宣言はせずに、引数に直接記述)

【フォームモジュール】
Private Sub cmd_コマンド0_Click()
  Dim test As String
  test = "aaa"
  Call 標準モジュールtest(test)
  'または、変数「test」は宣言せずに文字列を引数に直接記述
  'Call 標準モジュールtest("aaa")
End Sub

【標準モジュール】
Sub 標準モジュールtest(test As String)
  MsgBox test
End Sub

> 標準モジュールにpublicで宣言するしかないのでしょうか?

例えば、「自身のPath」のように実行後の変動がないものや、
「ファイルのプロパティ」のように呼出元によらず共通になるもの
などは、「標準モジュールにPublicで宣言」でいいと思いますが、
「ある処理の開始時間と終了時間」のように【都度変化する
値】のような場合は「SubやFunctionの引数として渡す」という
方法を採った方がよいかと思います。
(そうした方が、「うっかり古いままの値を使用してしまった」と
 いった失敗を防げる、と)

この...続きを読む

QLenovo G570 4334D7J

Lenovo G570 4334D7J

とAspire V3 V3-571-H54D/Kの価格差は1万円ですが、ネットのみ使用で複数のサイト(動画も)開きながらネットするのにどちらも速度は差はないでしょうか?1万円でどういった性能の差があるか教えてほしいです。メーカーは今レノボが世界1位なので印象は良いのですが

Aベストアンサー

G570の去年の型をもっています。今でももちろん現役。
そのG570は今年のverみたいですね。

G570は第三世代のインテルCPUを採用しているので高性能です。
省電力、動画再生、3D処理に特に強いのが特徴。
また、純粋な処理能力ももちろん向上していますから、
オフィスやフォトショップなんかもサクサク動きますよ。

ニコニコ動画の最高画質でもヌルヌル動きます。
もちろんyoutubeの最高画質(FHD)でもヌルヌルです。
自分で用意したFHDの動画ファイルでもヌルヌル動きますね。

動画のエンコード(動画編集、変換)にも強く、
Intel Quick Sync Videoという独自エンコードが出来ます。
例えば、DVD一本の変換でも20分や30分で変換が完了する優れものです。
(設定した画質にはよりますが、高画質でもかなり早い)

これらは全部、旧世代CPUの違いで生まれるものです。
旧世代CPUと比べたものなので、
検討されてる2機種で生まれるものではありません。



で、どっちのPCがいいかの話ですが、どっちも十分高性能です。
タブブラウザで複数表示したところで、
どっちのPCも高スペックですからカタつきませんよ。

Intel Quick Sync Videoのエンコードもどっちもできます。
が、Aspire V3 V3-571-H54D/Kのほうがエンコードは早いです。
Ivy Bridgeという第三世代のなかでも最新のCPUですからね。

処理能力という点でもG570と違いは出てきますが、
3D作成ソフトでも使わない限り、
あるいは3Dゲームでもしないかぎり明確な差は体感できません。
3DにおいてもG570よりAspire V3 V3-571-H54D/Kのほうが優れています。

というか、Lenovo G570 4334D7Jには、
Aspire V3 V3-571-H54D/Kに勝てる要素が見当たりません。

Lenovo G570 4334D7Jにはなくて、
Aspire V3 V3-571-H54D/Kにはある機能が山盛りです。

例えば無線LANの規格、Bluetoothの有無、初期搭載メモリ量、
グラフィックチップの型、ビデオメモリの量、あと勿論CPU。
これ全部、Aspire V3 V3-571-H54D/Kの方が優れてるんですよ。

唯一の欠点は、高性能な分、バッテリーがあまりもたないことです。
G570よりも1時間も短い。家で使うなら問題はないので使い方次第ですが。



Aspire V3 V3-571-H54D/Kの一番魅力な点は、やはりCPUです。
http://www.cpubenchmark.net/high_end_cpus.html

これによれば、Core i5 3210Mのスコアが約4000。
G570のCore i3 2350Mは約3000ですので、その差は1000もあります。

これがエンコードや処理能力に影響してくるわけですが、
1万円の差でそこまで開かれると、やっぱり悩んでしまいますね。



私はAspire V3 V3-571-H54D/Kの実機を操作したことが無いので、
ファンの音がどれくらいなのか、ということが不明です。
ですが、G570はもってます。i3採用ですから間違いなく静かですよ。

私のG570もi3なんですが、夏場でもCPUファンから冷風がでます。
そしてファンの音もしない。ほとんどまったくしないです。
さすがに3Dゲームとかしてたらブォーブォーとファンが回りますけどね。

G570でもi5版があるんですが、そっちは静かではなかったです。
Aspire V3 V3-571-H54D/Kはどうなのかわかりませんが、
やはり処理能力が上がれば温度は上がりやすいはずなので、
同世代のi3と比べれば、やはりファンはうるさくなりやすいはずです。
(とはいっても、それでも昔と比べれば十分静音なはずですが)



ということで、あなたの求める条件は両方ともそろえているわけですが、
参考になりましたでしょうか。あとは付加価値や、今後の事を考えましょう。
ずっとブラウジングや動画鑑賞だけでPCを使っていくつもりなら、
G570で十分おつりが来る性能ですよ。

私はG570でwebサイトを作成したりしているので、
メモリを自分で増設して8GBにしました。
去年4000円で買いましたが、今年はさらに安く、3000円です。恐ろしい!
フォトショップとdreamweaverを同時起動してもサクサクですよ。

いや、恐ろしい時代になりましたね。こんな性能が3万とか4万で買えるとか。
私は自作PC派だったんですが、自作するのがバカらしくなってきました。
デスクトップPCを自作することは、もう二度とないかもしれません。

さらにいえば、私はフレッツの開通で、G570を無料で貰いました。
今でも探せばいくらでも出てくるはずですよ。当時G570は4万でした。

もしJCOMとかYAHOOBBとか使ってるなら、
フレッツの回線を開通することで無料で4万くらいのPCを
タダでくれる業者が沢山あるので探してみるといいでしょう。
場合によっては、Aspire V3 V3-571-H54D/Kが無料という所もあるでしょう。

G570の去年の型をもっています。今でももちろん現役。
そのG570は今年のverみたいですね。

G570は第三世代のインテルCPUを採用しているので高性能です。
省電力、動画再生、3D処理に特に強いのが特徴。
また、純粋な処理能力ももちろん向上していますから、
オフィスやフォトショップなんかもサクサク動きますよ。

ニコニコ動画の最高画質でもヌルヌル動きます。
もちろんyoutubeの最高画質(FHD)でもヌルヌルです。
自分で用意したFHDの動画ファイルでもヌルヌル動きますね。

動画のエンコード(動画編集、変...続きを読む

QACCESS2000の帳票フォームでカーソルのあるレコードの他のフィールドの書式変更のモジュール

ACCESS2000の帳票フォームで、一番左のフィールドが得意先名、
間にいくつかのフィールドがあり、一番右のフィールドが金額を入金フィールドとして、
入金フィールドにカーソルがある場合、今どの得意先にいるか分かるように、今いるレコードの得意先フィールドの色を変えたいと思ってます。
この場合のモジュールの書き方を教えて頂けますでしょうか?
条件付書式設定でも無理なので、今はレコードセレクタを使ってます。
でもフィールドが多いため、右のほうに行けばどのレコードにいるのか分からなくなってしまうのです。
宜しくお願いいたします。

Aベストアンサー

>"テキスト72"="SHIIRE_CD"
これじゃ文字列の比較式です
[テキスト72]=[SHIIRE_CD]

QウクレレのD7のコード

お世話になります。
ウクレレのD7ですが、曲本に載っていた2フレットの2弦・4弦を
押さえる方法で弾いていたのですが
NHKのウクレレ講座では2フレットをセーハ(合ってるかな?)して
3フレット1弦を押さえると言ってました。
どちらが合ってるんでしょうか?

Aベストアンサー

どちらも正しいです。
コードネームは、押さえ方や押さえる場所を指定しているのではなく、そのときに弾いた和音の構成音を示しています。D7は、D・F#・A・C(レ・ファ#・ラ・ド)の四つの音からできている和音という意味なので、ウクレレでも、ギターでも、キーボードでもD7である以上は同じ響きになります。
ウクレレのD7は、2フレットセーハで第一弦3フレットなら、第四弦からラ・レ・ファ#・ドとD7コードに必要な四つの音がすべて含まれ、完全な押さえ方と言えます。
一方、第一、第三弦が開放になる押さえ方は、ラ・ド・ファ#・ラとなり、D7なのにルートのD(レ)が欠落し、替わりにラが2ヶあることになり、不完全な押さえ方と言えます。
しかし、バンドでギターやベースが入っていれば、それらの楽器が「レ」を必ず弾いているので、必ずしもウクレレでレを弾く必要は無く、カンタンな押さえ方のほうが良いのです。
それから、もっとも大事なことですが、ハワイのフラダンスの伴奏として弾かれる時は、必ずカンタンな方のD7でなければなりません。
これは、現地の人が習慣的に押さえるフォームであり、Dが欠落した響
きでないと、フラミュージックの感じになりません。
講師は、フラミュージックの専門家ではないので、そのようなことは知らずにレクチャしています。
また、セーハのD7は、セーハの指が、人差し指と中指の二種類があります。これは前後のコードによって、合理的な指を使うためです。押さえる場所は同じでも押さえる指は臨機応変に色々となります。
NHKの講座は、初心者にコンサートサイズのウクレレを勧めるなどの発言があったり、初日から、いきなりBbが出てきたりと、常識外のことが多いので、すべてを信用しないほうが良いです。講師はギターからの転向組で、あまりにもウクレレに対する見識が低すぎ不勉強です。

どちらも正しいです。
コードネームは、押さえ方や押さえる場所を指定しているのではなく、そのときに弾いた和音の構成音を示しています。D7は、D・F#・A・C(レ・ファ#・ラ・ド)の四つの音からできている和音という意味なので、ウクレレでも、ギターでも、キーボードでもD7である以上は同じ響きになります。
ウクレレのD7は、2フレットセーハで第一弦3フレットなら、第四弦からラ・レ・ファ#・ドとD7コードに必要な四つの音がすべて含まれ、完全な押さえ方と言えます。
一方、第一、第三弦...続きを読む

Qアクセスのフォームビューの帳票フォームではレコード

アクセスのフォームビューの帳票フォームではレコードを削除する事は出来ないのでしょうか?

データシートビューではレコードセレクタを選択し右クリックをすると
「レコードの削除(R)」という項目が出てきますが
帳票フォームでは出てきません。

帳票フォームでレコードを削除する方法を教えてください。
よろしくお願いいたします。

Aベストアンサー

ツールバー上の[レコードの削除]コマンドボタン か
レコードセレクタを選択し、[Delete]キー

QD7で高温期突入

いつも参考にさせていただいています。

初めて質問させていただきます。
現在、本格的に不妊治療をはじめて約7ヶ月になります。
最初はタイミングで様子を見てたんですが、年齢のこともあり(現在30代後半)
先生にAIHを勧められ、前々回周期に初めてのAIHをしましたが、残念な結果でした。
前回は病院を休んだので、薬も何も飲まずで40日周期でした。

今回、2ヶ月ぶりにクロミッド1錠を生理5日目から5日間服用したんですが、
生理開始には低温期に入り、D6でガクッと下がり、D7からだんだん体温が上がり
現在D12で高温期の体温になっております。

今日、卵胞チェックに行った時に、その話をし、チェックしてもらったら
「もう排卵してるかもやねー」って言われてしまいました。
今までクロミッドを飲んでも、早くても排卵はD15でした。
月曜か火曜日もう1回来てくださいと言われれ予約してきたものの
こんなに早くに排卵というのがありえるのか、体がどこかおかしいのか少し不安です。

こういう症状になった方がいれば、経験談とかを教えていただければ幸いです。
今回の基礎体温も入力しておきます。
普段は低温期が36.2~36.4で、高温期が36.6~36.8くらいです。

D1  36.35
D2  36.29
D3  36.39
D4  36.34
D5  36.38  クロミッド服用開始
D6  36.11
D7  36.51
D8  36.53
D9  36.59  クロミッド服用終了
D10 36.72
D11 36.72
D12 36.85

よろしくお願いします。

いつも参考にさせていただいています。

初めて質問させていただきます。
現在、本格的に不妊治療をはじめて約7ヶ月になります。
最初はタイミングで様子を見てたんですが、年齢のこともあり(現在30代後半)
先生にAIHを勧められ、前々回周期に初めてのAIHをしましたが、残念な結果でした。
前回は病院を休んだので、薬も何も飲まずで40日周期でした。

今回、2ヶ月ぶりにクロミッド1錠を生理5日目から5日間服用したんですが、
生理開始には低温期に入り、D6でガクッと下がり、D7からだんだん体温が...続きを読む

Aベストアンサー

こんばんは。38歳の女性です。
私は一度だけ、普段よりも1週間早く排卵したことがありました。
その分、生理も1週間早く来ました。
1度きりのことなので、特に病気は疑いませんでした。
無排卵月経と思われる症状も、一度だけありました。
基礎体温がガッタガタで生理がなかなか来なくて、1週間過ぎた頃に、
黒い少量の出血が、かさぶたのような状態で出てきました。
3日間で終わって、次の周期は普通に来ました。
その後妊娠、出産して、二児の母です。

治療を意識しすぎて、あるいは、夏が終わってからの気温の乱高下で、
リズムが狂ってしまっただけだと思いますよ^^
過去のデータと照らし合わせて、分析することも必要ですが、
あまり一喜一憂しすぎると、これからが続かなくなります。
私も病院へ通って、子供を授かりました。
なかなか子宝に恵まれずに焦る気持ち、よく分かります。

今回のことは、そういうこともある、程度で良いと思います。
実際、先生も特に異常を感じている様子ではないのですよね?
チャンスはまた来ますから、次にファイトです!

Q単票フォームと帳票フォームを連動 アクセス

どういう構成にすればいいか教えてください。

元データはT_testのみですが
T_testを元に、単票フォームと帳票フォームを作り、
この二つのフォームをサブフォームにし、1つの親フォームにはめて、
帳票フォームのレコードをクリックする(カレントレコードが変わる)度に
単票フォームは、帳票フォームのデータを表示させたいのですが
どうすればいいでしょう?

レコードソースは親フォームに設定すればいいのでしょうか?
それとも単票フォームと帳票フォームそれぞれにT_testを設定すればいいでしょうか?

帳票フォームのレコードをクリックして単票フォームのデータを表示させる際は、
帳票フォームの値を取得して単票フォームにフィルタをかければいいのでしょうか?

Aベストアンサー

No2 さんの方法を VBA を使用しないで実現。

hatena さんのを拝借して

帳票フォームの埋め込んであるサブフォームコントロール名を、SubForm1
単票フォームの埋め込んであるサブフォームコントロール名を、SubForm2
とします。

「T_test」の中に、オートナンバ「an」フィールドがあると仮定します。
オートナンバでなくてもレコードを一意に決定できるフィールドなら OKです。

細工1)
メインに不可視のテキストボックス「txt1」を配置します。
txt1 のコントロールソースを
=[subform1].[Form].[an]

細工2)
SubForm2 の リンク親/子フィールドを設定します。
(直接の手入力で:ビルドは使いません(この状況では使えません))
・リンク親フィールド : txt1
・リンク子フィールド : an

QDAHON 06 ROO D7について

2006年モデルのROO D7について質問があります。

先日通販で「06 ROO D7」を購入し納車したのですが、アキボウさんの
ホームページに掲載されている2006年モデルのものと比べると、
ハンドルポストの角度が違っていました。
(HPにある画像ではポストは地面に対して垂直になっていますが、
 購入したものは少し手前に倒れている感じです。)

また、ROOはホームページに掲載されているものはハンドルの高さ調整が
出来ないタイプだったのですが、購入したものは高さ調整が出来るものと
なっています。

上記に関しては途中で仕様の変更があったのでしょうか?
(販売店が間違えて05モデルを発送したのでしょうか?)


また、タイヤの空気入れ方式は英式のものが付いていましたが
空気圧の調整はどのようにして行うのでしょうか?


回答のほどよろしくお願い致します。

Aベストアンサー

ステムの角度の問題は、良くあることですので、気にしないことです。
仕様書にステムのメーカー名や型番が詳細に書かれていた分けではないでしょう。

英式バルブで、空気圧の細かな調整は出来ないと考えてください。
入れるときにゲージ付きの物で、加圧していって、目的の空気圧に達したら、加圧をやめる。
入れすぎたら、少し多めに抜いて、もう一度加圧して適正は圧力になるまで入れると言うことしかありません。
それが、英式のバルブってもんです。
英式バルブに細かな空気圧の調整を期待してはいけません。
米式や仏式であれば、そういったことが比較的簡単にできるようになっています。
こればかりは、その構造上の問題ですので、仕方ないことです。

Q帳票フォームの自動計算

毎度おせわになります。

商品  購入金額  比率(%)
-------------------------------
A     99,999  99.9
B
C
:
:
-------------------------------
TOTAL  99,999   100.0

上記のような帳票フォームがあり
各商品の購入金額を入力すると、各商品毎の購入金額合計に対する
の割合(比率)が自動計算されるようにする
という、フォームを作りたいのです。
フォームにはテーブルが連結されていて、上記の項目はテーブルから
貼り付けています。
購入金額をA,B,C…と入力していくと、それぞれの比率も変わってるの
ですが、カレントレコードしか計算ができません。
どのようにしたら全レコードの比率を再計算して表示できるのでしょうか?

Aベストアンサー

自信なしです。
間違っているかもしれないので、他の方の回答を優先してください。

表形式フォーム上で、「比率」という項目のレコードソースプロパティをあるテーブルのレコードソースにしているならば難しいと思います。
現在フォームで開いて編集中であるテーブルの複数のレコードの「比率」という項目の更新をしなければいけないからです。

【案】
(1)テキストボックス「比率」のプロパティで以下のように設定する
 コントロールソース  「=[購入金額]/Sum([購入金額])」
 書式         「パーセント」
 →テーブルの「比率」項目には設定されませんので注意してください
(2)テキストボックス「購入金額」の更新後処理イベントに以下の記述をする
SendKeys "{F9}"
 →これで再計算が行われるので、テキストボックス「比率」も再計算されます。
  最クエリーの場合は、フォーカスが先頭レコードに戻ってしまうので、この方法をとっています。

「比率」をテーブルに格納したい場合は、これだけではだめですけど・・・。

ご参考まで・・・

自信なしです。
間違っているかもしれないので、他の方の回答を優先してください。

表形式フォーム上で、「比率」という項目のレコードソースプロパティをあるテーブルのレコードソースにしているならば難しいと思います。
現在フォームで開いて編集中であるテーブルの複数のレコードの「比率」という項目の更新をしなければいけないからです。

【案】
(1)テキストボックス「比率」のプロパティで以下のように設定する
 コントロールソース  「=[購入金額]/Sum([購入金額])」
 書式       ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング