• 締切済み

ACCESSのレポートで、最後の空白行を表示させない方法

ACCESS 2002 を使用しています。 現在、以下のように支店毎に売り上げを印刷するレポートを使用しています。 <例> 東京支店  東京 太郎 取引先A 1,000,000円  東京 太郎 取引先B  500,000円  東京 次郎 取引先A 5,000,000円  東京 花子 取引先C 1,950,000円    ・    ・ ※支店が変わると改ページ ※1頁の最大行数は20行 ※20行に満たない場合はその時点で改ページ ※上図では略していますが、各行には罫線があります。 これでは見づらいので、担当者が変わるたびに空白行を入れて欲しいとの要望が出ました。 <例> 東京支店  東京 太郎 取引先A 1,000,000円  東京 太郎 取引先B  500,000円                    ←空白行  東京 次郎 取引先A 5,000,000円                    ←空白行  東京 花子 取引先C 1,950,000円                    ←空白行(不要) そこで「並べ替え/グループ化」で、担当者フッターを作成し、その内容を詳細と同じようにしたところ、空白行が挿入されるようになったのですが、各営業所の最後の担当者の後にも空白行が出力されてしまいます(上図の不要という部分)。 この最後の空白行を出力しないようにするにはどうしたら良いでしょうか。 以上です。 よろしくお願いいたします。

みんなの回答

noname#140971
noname#140971
回答No.4

DBCount関数は標準モジュールにコピペしてください。

musa2008
質問者

お礼

ご回答ありがとうございました。 ですが、どうにも意図どおりに動いてくれません。 これ以上お手を煩わせても申し訳ないので締め切らせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
noname#140971
noname#140971
回答No.3

テストで作成してレポートを示します。 -------------------------------------------------------------- レポートヘッダー -------------------------------------------------------------- [tab2]<---[ラベル8](標題) -------------------------------------------------------------- ページヘッダー -------------------------------------------------------------- [fld1__________][fld2________][fld3_________][ID] -------------------------------------------------------------- fld1ヘッダー -------------------------------------------------------------- [fld1] -------------------------------------------------------------- fld2ヘッダー -------------------------------------------------------------- __________[fld2] -------------------------------------------------------------- 詳細 -------------------------------------------------------------- __________________________________[fld3_________][ID] -------------------------------------------------------------- fld2 フッター -------------------------------------------------------------- -------------------------------------------------------------- ページ フッター -------------------------------------------------------------- 実際の表示 A__aaa__111 ___aaa__111 ___aaa__222 ___________ <--- フッター発生 ___bbb__333 B ___aaa__444 つまり、[fld1ヘッダー]の有無が両者の差異だと思います。 [fld1ヘッダー]部でAグループの総数を求めている訳です。 で、このルーチンから[fld1ヘッダー]の存在は類推できると思って割愛。 説明が舌足らずだったということです。

全文を見る
すると、全ての回答が全文表示されます。
noname#140971
noname#140971
回答No.2

DCount関数でもOKです。 が、高速化が希望であればADODBも用いた以下のような関数がお勧めです。 Public Function DBCount(ByVal strField As String, _             ByVal strTable As String, _             Optional ByVal strWhere As String = "", _             Optional ByVal ReturnValue = 0) As Variant On Error GoTo Err_DBCount    Dim N    Dim strQuerySQL As String    Dim rst     As ADODB.Recordset    Set rst = New ADODB.Recordset    strQuerySQL = "SELECT COUNT(" & strField & ") FROM " & strTable    If Len(strWhere) > 0 Then      strQuerySQL = strQuerySQL & " WHERE " & strWhere    End If    With rst      .Open strQuerySQL, _         CurrentProject.Connection, _         adOpenStatic, _         adLockReadOnly      If Not .BOF Then        .MoveFirst        N = .Fields(0)      End If    End With Exit_DBCount: On Error Resume Next    rst.Close    Set rst = Nothing    DBCount = IIf(N <> 0, N, ReturnValue)    Exit Function Err_DBCount:    MsgBox "SELECT 文の実行時にエラーが発生しました。(DBCount)" & Chr$(13) & Chr$(13) & _       "・Err.Description=" & Err.Description & Chr$(13) & _       "・SQL Text=" & strQuerySQL, _       vbExclamation, " 関数エラーメッセージ"    Resume Exit_DBCount End Function

全文を見る
すると、全ての回答が全文表示されます。
noname#140971
noname#140971
回答No.1

ID__fld1__fld2__fld3 1___A_____aaa___111 2___A_____aaa___222 3___A_____bbb___333 4___B_____aaa___444 A__aaa__111 ___aaa__222 ___________ <--- フッター発生 A__bbb__333 B__aaa__444 Option Compare Database Option Explicit Dim MenberTotal As Integer Dim MenberCount As Integer Private Sub グループフッター0_Format(Cancel As Integer, FormatCount As Integer)   Cancel = CBool(MenberTotal = MenberCount) End Sub Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer)   MenberTotal = DBCount("*", "Tab1", "fld1='" & Me.fld1 & "'")   MenberCount = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)   MenberCount = MenberCount + 1 End Sub [fld1]='A'に属するメンバー総数を求めます。 同時にメンバーのカンターを初期化します。 で、<メンバー総数=メンバー出力数>がフッターのキャンセル時。 改ページでは試していません。 僅か4行でのテスト。 が、上述の結果を得ました。

musa2008
質問者

お礼

早速のご回答をありがとうございました。 これから試してみます。 結果につきましては改めて報告させていただきます。

musa2008
質問者

補足

上記と同じテーブルを用意し、コードをそのまま貼り付けたのですが「コンパイルエラー Sub または Function が定義されていません」と出ますが、何が悪いのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • アクセスのレポートで同ページ内で2つ同じ内容を表示するには?

    アクセスを利用して顧客からの入金情報を入力しています。 内容は入金日、入金金額、顧客名の3データのみですが、会計部署へ提出する分と当部署の控えを同ページ内に作りたいと思います。(紙節約のため…) 一回のデータは5行程度なので充分可能なのですがレポートの設計がうまくできません。 具体的には 7月7日 山田花子 5000円 7月8日 加藤太郎 2500円 7月8日 佐藤二郎 4200円 (少し空白を空けて) 7月7日 山田花子 5000円 7月8日 加藤太郎 2500円 7月8日 佐藤二郎 4200円 どなたか詳しい方教えてください。 よろしくお願いします。

  • エクセル空白行を削除したい

    コピー元のデータは、2行を「セルを結合する」として一つのセルにし、入力していました。 それを別のシートに貼り付けたいのですが、ここではセルの結合を外した上で、空白行は見栄えと場所を確保するために削除したいのです。 方法の一つは、隣の行に連番を空白行をはさんでフィルで振り、その後ソートするということは思いつきます。 もっとスマートな方法はありますか? 具体例 コピー元 (うまく表示できませんが、セルは2行単位で結合しています) 貼り付けて、結合を解除すると、ちょうど下のようになります。       A       B     C タイトル行        氏名     住所 2行           松崎一郎   東京都 3行 4行           鈴木次郎   埼玉県 5行 貼り付け先 (こうしたいのです)         A     B      C タイトル行         氏名     住所 2行            松崎一郎   東京都 3行            鈴木次郎   埼玉県 4行 5行 よろしくお願いします。

  • ACCESSレポートのヘッダー表示の切り替えテクニック

    ACCESS(2002)のレポートで下記のように担当者別に担当者が購入した商品の明細リストを印刷したいと思います。 通常なら、担当者のグループヘッダーを作成し、詳細セクションに明細デーを表示させればOKなのですが、今回は、そのヘッダーの内容を「1ページ目(●Aを表示)」と「2ページ目以降(★Bを表示)」で異なる内容にしたいのです。 何か良い方法があれば教えて下さい! (補足1) 担当者が変われば、1ページ目は●Aの表示に戻し、2ページ目以降は★Bの表示とします。 (補足2) ★Bの表示領域は●Aよりも狭いです。つまり、2ページ目以降は1ページ目よりも明細が多く表示されます。 ┌───────┐P1-1  (担当1)太郎  ●ヘッダーA●   1.aaa   2.bbb   3.ccc └───────┘ ┌───────┐P1-2  (担当1)太郎  ★ヘッダーB★   4.ddd   5.eee   6.fff   7.yyy └───────┘ ┌───────┐P1-3  (担当1)太郎  ★ヘッダーB★   8.hhh   9.eee   10.aaa   11.ttt └───────┘ ┌───────┐P2-1  (担当2)花子  ●ヘッダーA●   1.xxx   2.yyy   3.ccc └───────┘ ┌───────┐P2-2  (担当2)花子  ★タイトルB★   4.jjj   5.eee   6.kkk   7.ppp └───────┘

  • アクセスのレポートを学べるところ

    アクセス2000を使用しています。 いろいろURLをみていたのですが、フォームやクエリのことを 詳しく説明しているところはあるようですが、レポートのことを 詳しく解説してくれているURLをご存知ないでしょうか? やりたいことは、例えば社員テーブルより支店ごとの社員名簿を 出力したいのです。但し、明細行は一頁に20行枠付きで出力し フッターには支店の住所を出力します。当然、一頁20行に満た ない場合もありますが、その時は、できればVBAで「改行」を記述 したいと思います。 素人で欲張りすぎかもしれませんがよろしくお願いいたします。

  • エクセルの集計での質問

    A列に日付、BからF列に担当者名(1~5)が入っています。 この表で誰が何日稼働したか調べたいのですが、日付の被りがあるのと、例えば▲▲さんが「担当者1」、●●さんが「担当者2」と決まっているわけでなく、早いもの順に「担当者1~5」までに名前が入っています。 A B C D E F 日 担1 担2 担3 担4 担5 1/3 太郎 次郎 花子 三郎 和子 1/3 次郎 太郎 三郎 美和 和子 1/4 花子 次郎 孝夫.......... この場合求められたものが 1/3 太郎 ×1、次郎 ×1、三郎×1、花子×1、和子×1 、美和×1 1/4 花子×1、次郎×1、孝夫×1 なので 太郎1日 次郎2日 三郎1日 花子2日 和子、美和、孝夫各1日 という風にエクセルで集計できないでしょうか?

  • アクセスのレポートで、空白行を一緒に印刷したい。

    いつも大変参考にさせて頂いております。 アクセス2003で、レポートを作成しています。 表形式にしたものを作成したいと思い、「詳細」へ入れたテキスト ボックス自体に線の色をつけて、罫線を引いたようにして現在出力しています。 一点問題があり、詳細以外のヘッダーを作成し、グループ化をしている 都合上、出力されるレポートのページによっては、レコードが一つ しかない場合があります。 そう言う時に、空白行を入れた状態で、印刷したいなぁと思って います。 何となく、イメージとしては、1ページに表示するレコード数を決めて おいて、その数より少ない時に空白のレコードを挿入する、みたいな 感じで出来るような気がするのですが、全くやり方がわかりません。 自分で調べてみて、いくつかそれらしい方法を見つけては挑戦した のですが、どうしてもうまくいかず質問させて頂きました。 皆様は、上記のような場合、どのような方法でレポートを作成される のでしょうか? ご教授頂けると幸いです。 よろしくお願い致します。

  • エクセルで1行置きに平均を求めたいのですが、エラーが返ってきたり空白行

    エクセルで1行置きに平均を求めたいのですが、エラーが返ってきたり空白行も計算されてしまうなど困ったことになっています 具体的にはG5からIS5までで1行置きに平均値計算 ただし空白行は計算の対象としない また、G5~IS5の計算の対象とするセルにはこのような数式が入っています 例 G5:「=IF(H5="","",(RANK(H5,$H$5:$H$44,0)))」 出力先はE5です 同じように1行置きの平均なんですが こちらはH5~IT5 空白行は対象としない こちらは数字を手で入力していく状況です 出力先はF5です。 分かりにくい説明ですがよろしくお願いします。

  • ACCESSのレポートのついてです

    初心者でお恥ずかしい質問ですが、本当に悩んでいます。 どうか教えてください!! バージョンは2007です。 クエリで 以下の通り表示されているものを レポートで表示する方法についてです。 本社  AAA 本社  BBB 本社  CCC 本社  DDD 本社  EEE ア支店 FFF イ支店 GGG 以下続く ○表示したいレポート1   (担当)本社       (製品名)AAA             BBB             CCC             DDD             EEE ○レポート2   (担当)ア支店       (製品名)FFF             「以下余白」             (空白のセル)             (空白のセル)             (空白のセル)                 ○ 教えてください(1)   1ページに5件の製品名を表示できるをようにしたいです。   5件以下の場合は、空白のセルが表示されるようにしたいです             ○ 教えてください(2)    1~4件の表示の時、「以下余白」の文字を入れたいです 今の状況は、 レポート1  (担当)本社       (製品名)AAA             AAA             AAA             AAA             AAA です。 どうぞご指導ください!お願いします!!

  • 遺産相続の範囲について。

    次のような場合には遺産を相続できる権利があるのでしょうか?  例 太郎さんと花子さんは離婚しました。    太郎さんと花子さんには実子のA君がいました。    A君は太郎さんの親権のもとで暮らしました。    A君は成長して、結婚しました。    花子さんは次郎さんと再婚しました。    花子さんが亡くなった時にA君は    花子さんの遺産を相続する権利はあるのでしょうか?    次郎さんが亡くなった時についても権利はあるのでしょうか? 以上、宜しくお願いします。

  • エクセルで複数条件を満たす値を表示する方法

     質問初めてで失礼しますが、よろしくお願いします。 エクセルにおいて  下記のようにシート「犬」に基礎となるデータがあります。     A   B  C  D  E   ・・・ 1        花子 太郎 次郎 2 1994 6月 200 100 320  3 1994 7月 700 300 500 4 1995 6月 800 500 100 5 1995 9月 900 800 300 6 1996 6月 500 200 200 ・ ・ ・  これを別のシート「猫」に花子の情報のみ一覧表示したいのですが、B3、B4・・・C3、C4・・・にどのような数式をいれればよいでしょうか?  なお、このようにして、太郎や次郎もシート毎に一覧表示させる予定です。    A B C D E   ・・・ 1 花子 2     6月 7月 8月 9月 3 1994  4 1995  5 1996  6 1997  7 1998  ・ ・ ・  よろしくお願いします。  

専門家に質問してみよう