dポイントプレゼントキャンペーン実施中!

初めて質問します。よろしくお願いします。

OS:Windows7 Home Premium Edition
Access:2007

ある業者がAccess2003で構築したシステムを2007で動くようにユーザーから依頼され
動作確認をしているのですが、

<レポートのレポートフッター-イベントプロシージャで>
Option Compare Database
Option Explicit

Public gDSum As Currency

<レポートフッター-フォーマット時イベントで>
gDSum = IIf(IsNull([明細金額]), 0, [明細金額])

<レポートフッター-テキストのコントロールソースで>
=[gDSum]

レポートを実行すると、レポートフッター-テキストが
「#Name?」になります。
Access2003とAccess2007で記述が変更になっているのでしょうか?

A 回答 (4件)

さきほどは誤った回答をして申し訳ございません。


私もAccess2007は持っていますので動作確認をしてみました。
レポートフッターのテキストボックスのコントロールソースにPublicな変数名を記述しても認識しませんでした。(変数名に[]が付加されレポートの項目の様に取り扱われる。)
ちなみに関数名は認識しました。

もともと私はこういう記述は使いませんので「Access2003とAccess2007で記述が変更になっているのでしょうか? 」については回答できません。

対処方法としては関数であればコントロールソースとして認識するようですので、関数を使った形に書き換えるか、レポートフッターのフォーマット時イベントにて項目に直接値をセットするかでしょう。(私はこの記法を使います。)

具体的には以下のような感じになります。

ME![設定する項目の名前]=設定する値(今回の場合には IIf(IsNull([明細金額]), 0, [明細金額]) でしょうか?)
    • good
    • 0
この回答へのお礼

ありがとうございます。
変数はダメなのですね、関数か値を直接セットする方法で
やってみます。

お礼日時:2013/02/26 13:24

すいませんNo2は無視してください。


よく見たら関数ではなく変数でしたね。
    • good
    • 0

動作検証はしていませんが



自作の関数を呼び出しているのですよね?
でしたらコントロールソースの記述は以下のようになるべきではありませんか?

=gDSum()
    • good
    • 0

確か


フォントサイズが微妙に違うと思うのですが・・・・

デザインのコントロールのサイズを大きくするか、フォントを変更若しくはサイズを小さくすれば問題なかった様な気がします。変更して実行してみて下さい

違っていたらゴメンナサイ
    • good
    • 0

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