とっておきの「まかない飯」を教えて下さい!

Accessのレポートで年次集計を項目が可変になるため、VBAで書き換えるようにしたのですが、うまく出来ません。
お心当たりのかたいらっしゃいましたら教えて頂けないでしょうか。

フォームの概要(売上集計)
    OO年 OO年 OO年
商品A 1,000 2,000 3,000 
商品B 1,500 2,500 3,500
商品C 2,500 3,500 4,500
※年は可変です

次のようにするとフォームが開いていないと言ったエラーが出ます。
stDocName = "年別売上集計レポート"
Reports(stDocName).ラベル1.Caption = cstr(Year) + "年"
DoCmd.OpenReport stDocName, acPreview, "", [フィルタ]

又次のようにするとエラーは出ませんが、ラベルは書き換わりません。
stDocName = "年別売上集計レポート"
DoCmd.OpenReport stDocName, acHidden, "", [フィルタ]
Reports(stDocName).ラベル1.Caption = cstr(Year) + "年"
DoCmd.OpenReport stDocName, acPreview, "", [フィルタ]

A 回答 (2件)

今しがた思い返してみたのですが、


意図しているところを探ってみますと下のコードでもまずいと思います。

というのもOpenReport自体がレポートのロード命令であり、
acPreviewとacHiddenとは別のレポートだと思われるからです。
(同じレポートを連続で開こうとするとどうなるか分かりません)

Reports(stDocName).ラベル1.Caption = cstr(Year) + "年"
この一行をレポートのopen、ないしそれに該当するイベントに記述すれば
上記のことは回避できますし、
わざわざhiddenで開いてラベルをセットする必要もありません。

意図をはずしていたらご容赦を。
    • good
    • 0
この回答へのお礼

レポートのオープンイベントでセットしたら解決しました。
結果的にはレポートのオープンイベントでに次のようなコードを入れました。
Private Sub Report_Open(Cancel As Integer)
Me.ラベル1.Caption = Forms!呼び出し元フォーム.年ラベル.Caption + "年"
end sub

こんな方法があるとは教えて頂くまで気が付きませんでした。
助かりました。ありがとうございます。

お礼日時:2007/05/24 15:57

>フォームが開いていないと言ったエラーが出ます



Form(レポート?)をロードしないとcaptionは変更というか
設定できないと思います。

コードとしては下のコードが正しいはずですが、
achiddenとは何でしょうか?
この引数は取れないようですが・・・
http://www.geocities.jp/cbc_vbnet/kisuhen/docmd. …

Accessの環境がないので参照意見扱いでお願いします。

この回答への補足

ご回答頂きありがとうございます。
仰るとおりopenしていないのメンバも変更出来ないようです。
acHiddenとは非表示でオープンする指定です。
URLも大変良い参考になりました。
下のコードをベースに改良してみます。

補足日時:2007/05/24 09:48
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報

このQ&Aを見た人がよく見るQ&A