別レポートで合計値を表示する方法
- 別のレポートに配置してある合計値を表示する方法をお教えください。
- 「R_イベントB」に、「R_イベントA」に配置してある「イベントA合計」の値を表示したいです。
- ご教示いただけると幸いです。
- ベストアンサー
別レポートにある値の表示について
いつもお世話になっております。 別のレポートに配置してある合計値を表示したいと考えていますが、やり方が分からないのでご教示をお願いいたします。 【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合計」の値を表示したいと思います。 どうかご教示をお願いいたします。
- ankle
- お礼率43% (80/182)
- Access(アクセス)
- 回答数18
- ありがとう数3
- みんなの回答 (18)
- 専門家の回答
質問者が選んだベストアンサー
訂正です。 No17の真ん中あたりで、 >「R_イベントB」のレコードソースにすることはできます。 は、 「R_イベントB」の「R_イベントB」の「イベントA合計リンク」の コントロールソースにすることはできます。 です。
その他の回答 (17)
- piroin654
- ベストアンサー率75% (692/917)
「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合計リンク」プロパティでコントロールソースをコードで 設定する場合です。
- piroin654
- ベストアンサー率75% (692/917)
たびたびすみません。 No15のコードの中で、 Me!総合計.ControlSource = "=" & [varNum] & "" となっていましたが、 Me!イベントA合計リンク.ControlSource = "=" & [varNum] & "" に訂正します。テキストボックスの名前が間違っていました。
補足
piroin654さん、何度も何度もお世話になり大変ありがとうございます。 おかげさまで、今度は代入できるようになりました。本当にありがとうございました。 「R_イベントB」を印刷する時は先に「R_イベントA」を開いて、次に「R_イベントB」を開くモジュールを作成したいと思います。 誠に勝手ながら再度ご質問ですが、「R_イベントA」を先に開かずに、直接「R_イベントB」を開いて代入する方法はあるのでしょうか? 何度も申し訳ございませんが、ご教示をよろしくお願いいたします。
- piroin654
- ベストアンサー率75% (692/917)
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」を開いた時の エラー処理です。
- piroin654
- ベストアンサー率75% (692/917)
「R_イベントB」を開くときのイベントで、 コントロールソースを変更します。 Private Sub Report_Open(Cancel As Integer) If Not IsEmpty(varNum) Then Me!イベントA合計リンク.ControlSource = "=" & [varNum] & "" End If End Sub これでどうでしょうか。
- piroin654
- ベストアンサー率75% (692/917)
「R_イベントB」をレポートビュー、あるいは印刷プレビュー で開いても結果はおなじですか?
- piroin654
- ベストアンサー率75% (692/917)
テキストボックスの「イベントA合計リンク」のプロパティが どのようになっているのかわからないので、 一度、【R_イベントB】の「イベントA合計リンク」を削除して 新たにテキストボックスを設定し、その名前を「イベントA合計リンク」 にして、確認してみてください。
補足
piroin654さん、こんばんは。 新たにテキストボックスを設定し、その名前を「イベントA合計リンク」にしましたが駄目でした。 varNumにはデータが格納されているのに、イベントA合計リンクのテキストボックスに代入にならないのは、代入の仕方が悪いのでしょうか。
- m3_maki
- ベストアンサー率64% (295/459)
横から失礼します。 > レポートは他のレポートの情報は参照出来ませんが、 そんことはありませんよ。 【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
補足
m3_makiさん、こんばんは。 できれば、【R_イベントA】を開かないで表示したいのでモジュールを設定しましたが、テキストボックスの「イベントA合計リンク」は 空欄となってしまいました。
- piroin654
- ベストアンサー率75% (692/917)
「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 上記でもう一度確認してみてください。
補足
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
- piroin654
- ベストアンサー率75% (692/917)
「R_イベントB」のレポートフッターの印刷時のイベントで Private Sub レポートフッター_Print(Cancel As Integer, PrintCount As Integer) Me!イベントA合計 = varNum End Sub を設定するとどうなりますか?
- piroin654
- ベストアンサー率75% (692/917)
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 どれかでデータが表示されると思いますが。
補足
piroin654さん、何度もお世話になり、ありがとうございます。 さて、お教えいただいたとおり試したところ、レポートを閉じるときのイベント「varNum = Me!イベントA合計」でメッセージボックスにデータが表示となりました。ついでに、「R_イベントB」の開くときのイベントでも試しましたが、同じようにデータが表示となりました。「R_イベントA」のレポートのページフォーマット時イベントでは、空欄でした。 しかし、肝心の「R_イベントB」に配置してあるイベントA合計リンクは、空欄のままでした。
- 1
- 2
関連するQ&A
- Access2016のレポートレイアウトについて
いつもお世話になっております。Access2016のレポートについてご教示をお願いいたします。下記のようなテーブル(T_徴収額)があるとします。 T_徴収額 地区 学年 参加者 金額 A 1 あああ 10 A 2 いいい 20 A 2 ううう 40 A 3 えええ 30 B 2 おおお 30 B 5 かかか 10 B 5 ききき 30 B 6 くくく 40 C 6 けけけ 50 C 6 こここ 10 このテーブルを下記のようなレイアウトのレポート(R_徴収額)にしたいと考えております。詳しくは、図をご覧ください。 (1)地区でグループ化 (2)地区グループ化ごとの金額の合計を地区フッターに表示 (3)さらに、地区フッターに2学年のみの金額の合計を表示 ここで困っているのは、グループ化ごとの合計は表示できたのですが、2学年のみの合計の表示方法が分かりません。つきましては、ご教示方お願いいたします。
- 締切済み
- Access(アクセス)
- Access2003のフォームからレポートに変数を渡したいのです。
Access2003のフォームからレポートに変数を渡したいのです。 フォームに「結果」という名前の非連結コンボボックスがあり、値集合ソースは、「"承認";"却下";"保留"」です。 フォームの印刷ボタンはクリック時のイベントに以下を設定しています。 DoCmd.OpenReport ("R_レポート名"), acViewPreview このレポートでテキストボックスに「結果」の内容を表示させたいと思います。 テキストボックスのコントロールソースに、「=[Forms]![F_フォーム名]![結果]」と入れてみましたがエラーになります。 フォームのコンボボックスの値をレポートで表示させるにはどうすれば良いのでしょうか。 ご教示ください。よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Accessのサブフォームから値を参照する方法について
いつも拝見させて頂いております。 現在、Access97のフォームに以下のようなコントロールを配置しています。 1.フォームにサブフォームAを配置 1-1.サブフォームAにテキストボックスAを配置(入力用) 2.フォームにサブフォームBを配置 2-1.サブフォームBにテキストボックスBを配置(表示用) ※フォームは一つです。 <実現したい事> サブフォームA内のテキストボックスAの値をサブフォームB内の テキストボックスBに表示したいのですが、なかなかうまくいきません。 サブフォームA内のテキストボックスAの値を変更するとサブフォームB内の テキストボックスBも変更するようにしたいので、テキストボックスBの ControlSourceに[Form]![フォーム]![サブフォームA].[Form]![テキストボックスA] としましたが実現できませんでした。 どのような方法をとれば実現できるでしょうか? 宜しくお願いします。
- 締切済み
- その他(データベース)
- Access レポートの一部を非表示
お世話になります。 Access2010 レポートに5つの項目(5ブロック)があり、フォーム上に設置した 1~5のチェックボックスの状況により表示/非表示させたいと思ってます。 ※1つのブロックには20~50個程度のテキストボックス及びラベルが 設置されてます。 デフォルトでは1~5のチェックボックスのチェックは入っている状態で 5ブロック全て表示させてます。 例えば、1と3、4のチェックが外された状態であれば、レポートの 1と3、4のブロックを非表示にします。 とりあえず上記の処理は出来たのですが、こんなやり方でよいの?って 感じなので、ご教示頂けたらと思います。 やったことは、各ブロックに四角形をかぶせます。 この四角形は背景スタイル[普通]、背景色[背景1]=白 です。 で、可視は[いいえ]としてます。 レポートが出力される際に、 If Me.1 = False Then Reports![レポート]![1].Visible = True Else '何もしない End If ※Me.1はチェックボックス1 って感じで1~5の判定をしてます。 要するにチェックボックスが外れていたら、該当の四角形の可視を[はい] にしてブロックを白い四角形で隠すようにしてます。 ただ、このやり方だとレポートをデザインで開くと、レポート全体が四角形で 覆われている状態です。もし、テキストボックスの配置を変える場合 四角形をいったん別の場所にずらして戻す・・ってことをやらないといけません。 なので、背景スタイルを[透明]にして、チェックボックスが外れた場合[普通] にすればよいかと思い、 If Me.1 = False Then Reports![レポート]![1].BackStyle = 1 ← 0が透明で1が普通 Else '何もしない End If としてみましたが、うまく動きませんでした(非表示にならず)。 ちなみにこれらの処理はレポートを開いた後に行ってます。 なので、可視プロパティは開いた後でも変更可能だけど、背景スタイルは不可能 ってことなのでしょうか。 とりあえず可視/非可視の切り替えで、思ったことは出来てはいるのですが こういう場合、一般的にはテキストボックスやラベルを一つずつ可視/非可視 に切り替えたりするものなのでしょうか。それとももっと良い方法があったり するのでしょうか。 ご教示の程、宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- ACCESSでフォーム入力→レポート出力したい
ACCESSでフォーム入力→レポート出力したい OS:XP,ACCESS2000 フォームのテキストボックスに入力した文字をレポートのテキストボックスに表示したい。 フォーム: ファイル名は「フォーム1」で、その中に作ったテキストボックス名は「入力データ」 コマンドボタン名は「レポート出力」 レポート: ファイル名は「レポート1」で、その中に作ったテキストボックス名は「出力データ」 フォーム1とレポート1を立ち上げてフォームのテキストボックスにデータを入力した後、 コマンドボタンを押してもレポート1のテキストボックスに入力したデータが表示されません。 レポート1を選択した後にデザインボタンを押し、その後にもう一度立ち上げると、 なぜかデータが書き込まれています。 コマンドボタンを押したのと同時にレポート1にデータが表示されるようにするには どうすれば良いですか? プログラムは以下の様になっております。 (1)クラスオブジェクト下 Private Sub コマンドボタン_Click() Call レポート書き出し() End Sub (2)標準モジュール下 Public Function レポート書き出し() Dim F As Form Dim R As Report Set F = Forms![フォーム1] Set R = Reports![レポート1] R![出力データ] = F![入力データ] End Function
- ベストアンサー
- その他MS Office製品
- レポートのテキストボックスには規定値がないのでし
レポートのテキストボックスには規定値がないのでしょうか? フォームではフォーム上にテキストボックスを設置して規定値に文字を入れれば フォームビューの時に入力した文字が表示されますが、 レポートではページヘッダーにテキストボックスの設置まではできますが プロパティを見ても「規定値」と言う項目がありません。 レポートを開いて印刷する時にVBAで Report_R受領確認書.担当者名テキスト = 名前 とやりたいのですが、エラーになってしまいます。 なので、直接テキストボックスの規定値に名前を入れてしまおうと思ったのですがそれも見つかりません。 テキストボックスではなく、ラベルを使って行うしかないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Accessのレポートで繰り返し表示させる方法について
あるテーブルを元に、Accessで表形式のレポートを作成しています。 詳細部分に A列|B列|C列|D列 というようにテキストボックスを並べています。 プレビュー表示をすると、テキストボックスの間の | が、縦に並んで1本の線が入っているように見せています。 この線ですが、表示するデータのあるなしに関わらず、レポートの下まで(フッターの手前まで)表示させたいのです。 例えば10行分しかデータ-がないと、11行目から下は真っ白になってしまいますが、線だけは表示をさせたい場合、何か方法がありますか?
- ベストアンサー
- オフィス系ソフト
- フォームの値をレポートに反映させるには
お世話になります。 Access2002のフォームとレポートについてご教授ください。 それは、サブフォームをデータシートにしてサブフォームの中の計算の合計をメインフォームのテキストボックスに反映させるために、=Form![サブフォーム名]![合計]として、サブフォームのヘッダーに一時値を待機させといて、その合計値(サブフォームの合計値)をメインフォームに反映させています。(サブフォームの合計値も計算式をコントロールソースに入力:[単価]*[数量]) そして、メインフォームの値をレポートに反映させて印刷をかけたいのですが、どの様にしたらいいのかわかりません。。。 何かいい方法がございましたら、ひとつよろしくお願いいたします。
- 締切済み
- その他(データベース)
- Accessでのレポート表示について
Accessの初心者です。レポートを作成していてわからないので教えてください。 テーブルで入力したものを引っ張ってきてレポートで表示したいのですがその表示の時に括弧をつけて(****)と表示する事はできますか? テーブルでは **** と入力して レポートでは(****)と表示したい レポートで****の前後にテキストボックスで()を書いてもいいのですがこれでは1つ困る事があります。 それは文字数がその都度違うということです。テキストボックスでやると(** )となったり(****)****となったりします。希望は文字数が多くても少なくても最初と最後に括弧をつけたいのです。 (*) (****) (***********) ↑こんなかんじで。 いい方法はないでしょうか?よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- レポートでイベントプロシージャでコントロールソース
アクセス2000で レポートのイベントプロシージャーでテキストボックスの コントロールソースを変えたい 住所1,2で文字数が20文字以下なら 1と2を結合して1行で出力したいのです。 テイブル名 JLIST フィールド名 ADD1,ADD2 レポート名 YK2 テキストボックス名 TADD1,TADD2 今はテキストボックスを非連結にしています。 イベントプロシージャはフォーマット時にかいています。
- ベストアンサー
- その他MS Office製品
お礼
piroin654さん、こんにちは。 おかげさまで、いずれの方法でも値が代入されました。 2パターンお教えいただきましたが、状況によっていずれかを選択したいと思います。 長文で何度もお教えいただき、本当にありがとうございました。 今後またなにかございましたら、ご教示をお願いいたします。