• ベストアンサー

ACCESS2000の帳票フォームの計算

こんにちは。 ACCESS2000の帳票フォームの計算についてですが、横に計算させたいのですが・・・ A B A+B このA+Bの部分をイベントプロージャで行う方法を教えていただけますか。 お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

これはフォームについてですね?(レポートではありませんね) テキストボックスは、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

Fujjy
質問者

お礼

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

その他の回答 (4)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.5

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)
回答No.4

なぜかレポートと勘違いしてしまいました。 蛇足ですが…… #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)
回答No.2

レポート自体のプロパティを開きイベントのアクティブ時にA+Bを表示するフィールド をCとして Private Sub Report_Activate() C = A + B End Sub これだけで出来ます。

Fujjy
質問者

お礼

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

  • aptiva
  • ベストアンサー率36% (193/529)
回答No.1

A、Bは1つのレコードの中の項目でしょうか、それぞれ別のレコードの値でしょうか? もし、前者であれば、テキストボックスのコントロールソースに、=A+Bとすればよいですし、複雑な計算式であれば詳細セクションのフォーマット時(_format)のイベントプロシージャに、C=A+Bとすればよいと思います。 (Cは計算結果のテキストボックスです)

Fujjy
質問者

お礼

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

関連するQ&A