こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

access2007のコントロールソースで

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

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で記述が変更になっているのでしょうか?

投稿日時 - 2013-02-25 13:13:33

QNo.7963733

困ってます

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

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

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

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

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

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

投稿日時 - 2013-02-25 23:11:15

お礼

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

投稿日時 - 2013-02-26 13:24:14

ANo.4

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

すいませんNo2は無視してください。
よく見たら関数ではなく変数でしたね。

投稿日時 - 2013-02-25 22:22:47

ANo.2

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

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

=gDSum()

投稿日時 - 2013-02-25 22:20:56

ANo.1

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

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

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

投稿日時 - 2013-02-25 16:06:19

あなたにオススメの質問