解決済み

別レポートにある値の表示について

  • すぐに回答を!
  • 質問No.9557744
  • 閲覧数133
  • ありがとう数3
  • 気になる数0
  • 回答数18
  • コメント数0

お礼率 39% (42/107)

 いつもお世話になっております。
 別のレポートに配置してある合計値を表示したいと考えていますが、やり方が分からないのでご教示をお願いいたします。

【R_イベントA】
地区  参加者
a    2
b    5
c    1
合計   8(テキストボックス名:イベントA合計)

【R_イベントB】
地区  参加者
d    2
e    3
f     4
合計   9(テキストボックス名:イベントB合計)
イベントA合計 8(テキストボックス名:イベントA合計リンク)

 このように「R_イベントB」に、別レポート「R_イベントA」に配置してある「イベントA合計」の値を表示したいと思います。
 どうかご教示をお願いいたします。

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

  • 回答No.18

ベストアンサー率 75% (677/896)

訂正です。
No17の真ん中あたりで、

>「R_イベントB」のレコードソースにすることはできます。

は、

「R_イベントB」の「R_イベントB」の「イベントA合計リンク」の
コントロールソースにすることはできます。


です。
お礼コメント
ankle

お礼率 39% (42/107)

 piroin654さん、こんにちは。
 おかげさまで、いずれの方法でも値が代入されました。
 2パターンお教えいただきましたが、状況によっていずれかを選択したいと思います。
 長文で何度もお教えいただき、本当にありがとうございました。
 今後またなにかございましたら、ご教示をお願いいたします。
投稿日時 - 2018-11-22 13:25:05

その他の回答 (全17件)

  • 回答No.17

ベストアンサー率 75% (677/896)

「R_イベントA」のレコードソースがフォームやクエリの
込み入った計算や集計をしたものである場合や、レポート上で
同様に計算や集計を行ったものが合計として表示される仕組みならば
「R_イベントA」を開くことで「イベントA合計」という結果を
求める必要があります。
したがって、VBAで「R_イベントA」を開きデータを確定し、
結果を「R_イベントB」に渡す必要が出てきます。

あるいは、コードでそれらの計算ができるならばコードでの
計算結果を「R_イベントB」にコードで渡すことになります。
この場合は「R_イベントA」を開く必要はないでしょう。

また、もし単に「R_イベントA」のレコードソースが何の加工も
していないテーブルならばクエリで集計結果だけを取り出し、それを
「R_イベントB」のレコードソースにすることはできます。ただし、
レポートが受け入れてくれればですが。たとえば、「R_イベントA」の
レコードソースを「T_イベントA」という名前のテーブルとします。
テーブルのフィールドに質問で提示されている「参加者」があるとします。
データ型は数値とします。以下のようなSQL文のクエリ、

SELECT Sum(T_イベントA.参加者) AS 参加者の合計 FROM T_イベントA;

を作り、その名前を「Q_イベントA合計」とします。そして、


  =DLookUp("参加者の合計","Q_イベントA合計")


を「R_イベントB」の「イベントA合計リンク」プロパティでコントロールソース
に設定します。これでレポートが受け入れれば「R_イベントA」を開かずに
データが表示されるはずです。



どうしても「R_イベントA」を開いてデータを確定する必要があるならば、
フォームの「R_イベントB」を開くボタンクリックのイベントで、


Private Sub コマンド1_Click()
  DoCmd.OpenReport "R_イベントA", acViewPreview
  DoCmd.Close acReport, "R_イベントA"
  DoCmd.OpenReport "R_イベントB", acViewPreview
End Sub


のようにして「R_イベントA」を開いて閉じて、データを確定させて、
「R_イベントB」を開くということもできますが、ただしうまくいけば
ですが。一応確認はしていますが。もちろんこの場合は「R_イベントB」
のイベントA合計リンク」プロパティでコントロールソースをコードで
設定する場合です。
  • 回答No.16

ベストアンサー率 75% (677/896)

たびたびすみません。
No15のコードの中で、

Me!総合計.ControlSource = "=" & [varNum] & ""

となっていましたが、

Me!イベントA合計リンク.ControlSource = "=" & [varNum] & ""

に訂正します。テキストボックスの名前が間違っていました。
補足コメント
ankle

お礼率 39% (42/107)

 piroin654さん、何度も何度もお世話になり大変ありがとうございます。
 おかげさまで、今度は代入できるようになりました。本当にありがとうございました。
 「R_イベントB」を印刷する時は先に「R_イベントA」を開いて、次に「R_イベントB」を開くモジュールを作成したいと思います。
 誠に勝手ながら再度ご質問ですが、「R_イベントA」を先に開かずに、直接「R_イベントB」を開いて代入する方法はあるのでしょうか?
 何度も申し訳ございませんが、ご教示をよろしくお願いいたします。
投稿日時 - 2018-11-21 17:03:01
  • 回答No.15

ベストアンサー率 75% (677/896)

No14の訂正です。
エラー処理がうまく機能しないので、以下のように
してみてください。



Private Sub Report_Open(Cancel As Integer)
  If IsEmpty(varNum) Then
    Exit Sub
  End If

  If IsNull(varNum) Then
    Exit Sub
  End If

  If varNum = "" Then
    Exit Sub
  End If

  Me!総合計.ControlSource = "=" & [varNum] & ""

End Sub




「R_イベントA」を開かずに、いきなり「R_イベントB」を開いた時の
エラー処理です。
  • 回答No.14

ベストアンサー率 75% (677/896)

「R_イベントB」を開くときのイベントで、
コントロールソースを変更します。


Private Sub Report_Open(Cancel As Integer)
  If Not IsEmpty(varNum) Then
    Me!イベントA合計リンク.ControlSource = "=" & [varNum] & ""
  End If
End Sub


これでどうでしょうか。
  • 回答No.13

ベストアンサー率 75% (677/896)

「R_イベントB」をレポートビュー、あるいは印刷プレビュー
で開いても結果はおなじですか?
  • 回答No.12

ベストアンサー率 75% (677/896)

テキストボックスの「イベントA合計リンク」のプロパティが
どのようになっているのかわからないので、
一度、【R_イベントB】の「イベントA合計リンク」を削除して
新たにテキストボックスを設定し、その名前を「イベントA合計リンク」
にして、確認してみてください。
補足コメント
ankle

お礼率 39% (42/107)

piroin654さん、こんばんは。
新たにテキストボックスを設定し、その名前を「イベントA合計リンク」にしましたが駄目でした。
varNumにはデータが格納されているのに、イベントA合計リンクのテキストボックスに代入にならないのは、代入の仕方が悪いのでしょうか。
投稿日時 - 2018-11-20 20:32:01
  • 回答No.11

ベストアンサー率 64% (260/403)

横から失礼します。

> レポートは他のレポートの情報は参照出来ませんが、

そんことはありませんよ。

【R_イベントA】が開かれているなら
「イベントA合計リンク」 の コントロールソースを
=[Reports]![R_イベントA]![イベントA合計]
とするだけです。
VBA は不要です。

【R_イベントA】が開かれていないとエラー表示されます。
これを避ける必要があるなら、
「イベントA合計リンク」 の コントロールソースは空にして

Private Sub レポートフッター_Format(Cancel As Integer, FormatCount As Integer)
 With CurrentProject.AllReports("R_イベントA")
  If .IsLoaded Then
   If .CurrentView <> acCurViewDesign Then
    Me.イベントA合計リンク = [Reports]![R_イベントA]![イベントA合計]
   Else
    Me.イベントA合計リンク = Null
   End If
  End If
 End With
End Sub
補足コメント
ankle

お礼率 39% (42/107)

 m3_makiさん、こんばんは。
 できれば、【R_イベントA】を開かないで表示したいのでモジュールを設定しましたが、テキストボックスの「イベントA合計リンク」は 空欄となってしまいました。
投稿日時 - 2018-11-20 20:34:43
  • 回答No.10

ベストアンサー率 75% (677/896)

「R_イベントB」において、
テキストボックスの名前は、「イベントA合計」ではなく、
「イベントA合計リンク」でしたね。
ひょっとしてすべて「イベントA合計リンク」ではなく、
「イベントA合計」としていましたか。

「R_イベントB」のレポートフッターの印刷時のイベントで

Private Sub レポートフッター_Print(Cancel As Integer, PrintCount As Integer)
  Me!イベントA合計リンク = varNum
End Sub

あるいは、「R_イベントB」レポートフッターのフォーマット時
Private Sub レポートフッター_Format(Cancel As Integer, FormatCount As Integer)
  Me!イベントA合計リンク = varNum
End Sub


上記でもう一度確認してみてください。
補足コメント
ankle

お礼率 39% (42/107)

 piroin654さん、何度も申し訳ございません。
 やっぱり空欄となってしまいます。
 一応、教えていただいた内容と同じではありますが、入力してあるモジュールをコピーしました。
ーーーーーー「R_イベントB」のモジュールーーーーーーーー
Private Sub Report_Close()
varNum = ""
End Sub
-----------------------------------------------------------------------------------
Private Sub Report_Open(Cancel As Integer)
MsgBox varNum
End Sub
-----------------------------------------------------------------------------------
Private Sub レポートフッター_Format(Cancel As Integer, FormatCount As Integer)
Me!イベントA合計リンク = varNum
End Sub
-----------------------------------------------------------------------------------
Private Sub レポートフッター_Print(Cancel As Integer, PrintCount As Integer)
Me!イベントA合計リンク = varNum
End Sub
投稿日時 - 2018-11-20 16:04:30
  • 回答No.9

ベストアンサー率 75% (677/896)

「R_イベントB」のレポートフッターの印刷時のイベントで


Private Sub レポートフッター_Print(Cancel As Integer, PrintCount As Integer)
  Me!イベントA合計 = varNum
End Sub



を設定するとどうなりますか?
  • 回答No.8

ベストアンサー率 75% (677/896)

No7の続きで、
レポートの構造が分からないので一応考えられるレポートの
イベントを網羅しておきます。

「R_イベントA」のレポートのページフォーマット時のイベントで、
以下のコードを設定してみる。


Private Sub Report_Page()
  varNum = Me!イベントA合計
End Sub




レポートを閉じるときのイベントに
varNum = Me!イベントA合計
を追加して以下を設定してみる。


Private Sub Report_Close()
  varNum = Me!イベントA合計
  MsgBox varNum
End Sub



どれかでデータが表示されると思いますが。
補足コメント
ankle

お礼率 39% (42/107)

 piroin654さん、何度もお世話になり、ありがとうございます。
 さて、お教えいただいたとおり試したところ、レポートを閉じるときのイベント「varNum = Me!イベントA合計」でメッセージボックスにデータが表示となりました。ついでに、「R_イベントB」の開くときのイベントでも試しましたが、同じようにデータが表示となりました。「R_イベントA」のレポートのページフォーマット時イベントでは、空欄でした。
 しかし、肝心の「R_イベントB」に配置してあるイベントA合計リンクは、空欄のままでした。  
投稿日時 - 2018-11-20 12:38:42
17件中 1~10件目を表示
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ