Access2007のコントロールソースで注意すべきポイントがある!

このQ&Aのポイント
  • Access2007でレポートを実行する際に、コントロールソースの記述に注意が必要です。
  • 特に、レポートフッター-テキストのコントロールソースの計算式が変更になっている可能性があります。
  • これが原因でレポートフッター-テキストが「#Name?」と表示されることがあります。
回答を見る
  • ベストアンサー

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

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

  • ベストアンサー
  • sppla
  • ベストアンサー率51% (185/360)
回答No.4

さきほどは誤った回答をして申し訳ございません。 私もAccess2007は持っていますので動作確認をしてみました。 レポートフッターのテキストボックスのコントロールソースにPublicな変数名を記述しても認識しませんでした。(変数名に[]が付加されレポートの項目の様に取り扱われる。) ちなみに関数名は認識しました。 もともと私はこういう記述は使いませんので「Access2003とAccess2007で記述が変更になっているのでしょうか? 」については回答できません。 対処方法としては関数であればコントロールソースとして認識するようですので、関数を使った形に書き換えるか、レポートフッターのフォーマット時イベントにて項目に直接値をセットするかでしょう。(私はこの記法を使います。) 具体的には以下のような感じになります。 ME![設定する項目の名前]=設定する値(今回の場合には IIf(IsNull([明細金額]), 0, [明細金額]) でしょうか?)

pinkneo
質問者

お礼

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

その他の回答 (3)

  • sppla
  • ベストアンサー率51% (185/360)
回答No.3

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

  • sppla
  • ベストアンサー率51% (185/360)
回答No.2

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

  • jbeam
  • ベストアンサー率41% (85/204)
回答No.1

確か フォントサイズが微妙に違うと思うのですが・・・・ デザインのコントロールのサイズを大きくするか、フォントを変更若しくはサイズを小さくすれば問題なかった様な気がします。変更して実行してみて下さい 違っていたらゴメンナサイ

関連するQ&A

  • ACCESSのレポートに売上の累計を計算させましたが・・・・

    ACCESS2002についてです。 テーブルに"売上日" "売上金額"とある中で"売上累計"を明細行毎にだそうと、本に書いてある下記のように入力しましたが、ページが変わってしまうと"売上累計"が合わなくなってしまいます。どうしたら解決できますか???? Option Compare Database Option Explicit Private curRuikei As Currency Private Sub Report_Open(Cancel As Integer) End Sub Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) '累計のクリア curRuikei = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) '累計の加算 curRuikei = curRuikei + Me!売上金額 Me!売上累計 = curRuikei End Sub です。

  • レポートでイベントプロシージャでコントロールソース

    アクセス2000で レポートのイベントプロシージャーでテキストボックスの コントロールソースを変えたい 住所1,2で文字数が20文字以下なら 1と2を結合して1行で出力したいのです。 テイブル名 JLIST フィールド名 ADD1,ADD2 レポート名 YK2 テキストボックス名 TADD1,TADD2 今はテキストボックスを非連結にしています。 イベントプロシージャはフォーマット時にかいています。  

  • Option Compare Database

    vbaで Option Explicit がないと、変数の宣言が強制されないけど、 アクセスには Option Compare Database がありますが、 これはどういう役目をなしてるのでしょうか? これがないとどうなるのでしょうか?

  • 実行されない

    アクセス初心者です プロシージャの実行をしても 答えがでてきません 何が必要なのでしょうか Option Compare Database Public Function Doreka() Doreka = 1 * 3.305785 End Function

  • On Error Resume Nextを複数のプロシージャーで使うことは不可能ですか?

    Module1に ------------------------------------------- Option Compare Database Option Explicit Sub マクロ1() End Sub Sub マクロ2() End Sub ------------------------------------------- があるのですが ------------------------------------------- Option Compare Database Option Explicit Sub マクロ1() On Error Resume Next End Sub Sub マクロ2() On Error Resume Next End Sub ------------------------------------------- ではなく ------------------------------------------- On Error Resume Next Option Compare Database Option Explicit Sub マクロ1() End Sub Sub マクロ2() End Sub ------------------------------------------- これはできないのでしょうか? エラーになります。 dimもつけても駄目でした。 ひとつづつやっていくしかないのでしょうか?

  • Access97 で セクションの件数を出したい

    お世話になりますが、Access97のレポートで・・・ ===伝票番号ヘッダー=====  伝票番号  ===詳細=====   商品明細   商品明細 ===伝票番号フッター=====     伝票合計金額 ===レポートフッター=====      伝票枚数 伝票合計金額の総計 この様に、レポートの最後(フッター部)に、伝票枚数を集計したいのですが、Count([伝票番号])とかだと、詳細の各行を全部カウントしてしまいます。 こんな場合、どうすれば良いのでしょうか?

  • アクセスからアクセスファイルを開くには?

    アクセスからアクセスファイルを開きたいのですがうまく出来ないので教えてください。 Option Compare Database Option Explicit Sub test() Dim App As Access.Application Dim MyFileName As String Set App = CreateObject("Access.Application") MyFileName = CurrentProject.Path & "\アクセスファイル名.mdb" With App .Visible = True End With Set App = Nothing End Sub で、 .Visible = True でアプリケーションは開きますが Set App = Nothing を通過すると開いたアプリケーションが閉じてしまいます。 それにアプリケーションが開くだけで肝心のファイルが開かれません。 なので「.ファイルを開くVBAコード」が必要だと思うのですがそのコードがわかりません。

  • ACCESSのレポートについて教えて下さい

    ACCESSのサブフォームのフッターに非連結のテキストボックスを作成しています。 1.Sum(IIf([項目]="a",[入金金額],Null)) 名前:a 2.Sum(IIf([項目]="b",[入金金額],Null))       名前:b 3.Sum(IIf([項目]="c.",[入金金額],Null)) 名前:c 4.=a+b+c 4の計算結果が表示されません。 本当はヘッダーに表示したいのですが、方法をわかりやすくご教授出来る方よろしくお願います

  • アクセスのレポートでのSum関数について

    アクセスのレポートでのSum関数について教えてください。 最終的にはレポート全体のトータルの消費税を出したいのですが、うまくいきません。 単純にレポート内の一件一件の消費税のトータルではなくて、業者単位での消費税のトータルの足したものをレポートの消費税のトータルとしたいのです。 というのも、業者のフッターで、"=Sum([合計金額])*0.05"としているのですが、 レポートのフッターでも同様に"=Sum([合計金額])*0.05"とすると、 レポート内の一件一件の明細に0.05を掛けたものとなり、業者単位での合計金額の トータルに0.05を掛けたものの合計とは違った値となってしまいます。 要するに、業者フッターの"=Sum([合計金額])*0.05"を単純に足し算した値を欲しいのですが、どうすれば良いですか? 非常に困っています。 ちなみに環境はOS:WIN98 アクセス2000です 宜しくお願い致します。

  • エクセルの変数をアクセスでも使いたい。

    エクセルの標準モジュールには Option Explicit Public 文字列 As String Public アクセス As Object Public Sub エクセル側テスト() 文字列 = "あ" Set アクセス = GetObject("C:\db1.mdb") If Not アクセス Is Nothing Then アクセス.Run "アクセス側テスト" End If Set アクセス = Nothing End Sub アクセス(db1.mdb)の標準モジュールには Option Compare Database Option Explicit Public 文字列 As String Sub アクセス側テスト() MsgBox 文字列 End Sub という風にコードを書きましたが やはりアクセスではエクセルで指定した変数が受け継がれません。 これを「アクセス側テスト」のマクロでもmsgboxで「あ」と表示させるにはどうすればいいのでしょうか? よろしくお願いします。

専門家に質問してみよう