- ベストアンサー
ACCESS2000の帳票フォームの計算
こんにちは。 ACCESS2000の帳票フォームの計算についてですが、横に計算させたいのですが・・・ A B A+B このA+Bの部分をイベントプロージャで行う方法を教えていただけますか。 お願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
これはフォームについてですね?(レポートではありませんね) テキストボックスは、A,B,Cがあるものとします。 1)まず、イベントプロシージャを使わない方法 それぞれのテキストボックスのプロパティで書式を数値にしておく。 テキストボックスCのコントトールソースを=[A]+[B]とする. 2)ご質問のイベントプロシージャで行う方法 テキストボックスのコントトールソースに=[A]+[B]が入っていたら削除 テキストボックスAやBの更新後の処理で次の計算式を入れてください。 Private Sub A_AfterUpdate() Me.C = Me.A + Me.B End Sub Private Sub B_AfterUpdate() Me.C = Me.A + Me.B End Sub なお、AやBに何も無いときに0にしたければ、 Me.C = IsNull(Me.A) + IsNull(Me.B) としてください。 ご参考になれば幸いです。m(__)m
その他の回答 (4)
- O_cyan
- ベストアンサー率59% (745/1260)
Fujjyさん失礼しました。 私も質問にある"帳票"という字とaptivaさんの補足要求を見てレポートと早合点し てしまいました。 Bのプロパティのイベントの更新後処理に Private Sub B_AfterUpdate() Me.C = Nz(Me.A) + Nz(Me.B) End Sub またはCのプロパティのイベントのフォーカス取得時に Private Sub C_Enter() Me.C = Nz(Me.A) + Nz(Me.B) End Sub のどちらかで良いと思います。 私は演算フィールド上にNullが存在しうる場合はNz関数を使ってほとんど記述します。
- aptiva
- ベストアンサー率36% (193/529)
なぜかレポートと勘違いしてしまいました。 蛇足ですが…… #3のShadowMoonさんの回答で、 >なお、AやBに何も無いときに0にしたければ、 >Me.C = IsNull(Me.A) + IsNull(Me.B) >としてください。 とあるのは、ちょっとおかしいと思います。 意味合いは少し違いますが、 Me.C = nz(Me.A) + nz(Me.B) とすると、AかBになにも入っていない時は、入ってない項目が0で計算します。 c = IIf(IsNull(Me.A) Or IsNull(Me.B), 0, Me.A + Me.B) とすると、ShadowMoonさんの言うような答えになると思います。
- O_cyan
- ベストアンサー率59% (745/1260)
レポート自体のプロパティを開きイベントのアクティブ時にA+Bを表示するフィールド をCとして Private Sub Report_Activate() C = A + B End Sub これだけで出来ます。
お礼
ありがとうございました。
- aptiva
- ベストアンサー率36% (193/529)
A、Bは1つのレコードの中の項目でしょうか、それぞれ別のレコードの値でしょうか? もし、前者であれば、テキストボックスのコントロールソースに、=A+Bとすればよいですし、複雑な計算式であれば詳細セクションのフォーマット時(_format)のイベントプロシージャに、C=A+Bとすればよいと思います。 (Cは計算結果のテキストボックスです)
お礼
ありがとうございました。
お礼
ありがとうございました。