• ベストアンサー

Access2000のレポートで条件付改ページの方法を教えて下さい。

klubの回答

  • ベストアンサー
  • klub
  • ベストアンサー率36% (14/38)
回答No.3

なんかカッコ悪いコードになっちゃいましたが 勘弁してください。 DoCmd.RunSQL "DELETE W_印刷用.* FROM W_印刷用;" Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Dim RS2 As ADODB.Recordset Dim 件数 As Integer Dim 空白数 As Integer Dim 退避所属コード As Long Dim 番号 As Long Set CN = CurrentProject.Connection Set RS = New ADODB.Recordset Set RS2 = New ADODB.Recordset RS.Open "T_社員", CN, adOpenKeyset, adLockOptimistic RS2.Open "W_印刷用", CN, adOpenKeyset, adLockOptimistic RS.MoveFirst 番号 = 1 件数 = 1 Do Until RS.EOF 退避所属コード = RS!所属コード Do Until 退避所属コード <> RS!所属コード RS2.AddNew RS2!番号 = 番号 RS2!社員名 = RS!社員名 RS2!所属コード = RS!所属コード RS2.Update RS.MoveNext If RS.EOF Then Exit Do 番号 = 番号 + 1 件数 = 件数 + 1 Loop If 件数 > 10 Then 件数 = (件数 Mod 10) End If 空白数 = 10 - 件数 番号 = 番号 + 1 For I = 1 To 空白数 RS2.AddNew RS2!番号 = 番号 RS2!所属コード = 退避所属コード RS2.Update 番号 = 番号 + 1 Next I 件数 = 1 Loop RS.Close RS2.Close CN.Close テーブル ・T_社員  社員名 テキスト型  所属コード 数値型(長整数) ・W_印刷用  番号 数値型(長整数)  社員名 テキスト型  所属コード 数値型(長整数) で作成しました。 もっと簡潔にできるとは思いますが そこはお願いします。 もちろんレポートでグループヘッダーを所属コードで 作成しておかないとこのままW_印刷用をそのまま印刷しても、別所属コードで改ページされません。 (1ページ10件ぎりぎりで作成しておけば別ですが)

ariga
質問者

お礼

ありがとうございます。とっても我儘なお願いにもかかわらず、コードを公開していただいて、とっても助かります。 このコードを参考にがんばってみます。本当にありがとうございます。

関連するQ&A

  • アクセスのレポートで全てのページの行数を揃えたい

    こんにちは。 アクセス2003で、「社員コード」、「社員名」、「所属」、「役職」 項目のある社員テーブルからレポートを作成しました。 所属が変わるごとに改ページしたいのですが、様式を固定 するため、1枚には10人出力(8人の場合は、2人分は空白) するようにしたいと思っています。 グループ毎の改ページでは、10人に満たないと下に余白が できてしまうので、余白ができないようにするために、何かよい 解決法はありますでしょうか? よろしくお願いします。

  • ACCESS2000のレポートの改ページ

    ACCESS2000のレポートで得意先でグループ化してあり30行になったら 改ページすると言うことをやっているのですがレポートのプレビューを見ると 1ページ目はしっかりでているのですが2ページ目が白紙3ページ目は正しくでています。後、得意先データが30データなくても空打ちで改ページしたいのです。 どうやったら改ページがうまくいくでしょうか? レポートはメインレポートにページヘッダーが有り詳細にサブレポートをもってきています。あとページフッターがあります。 どなたかおわかりの方お教え願えないでしょうか?

  • Access2000 レポートの改ページ

    Access2000のレポートを作成しているのですが、1ページ分しかデータがないのに、2ページ目がまるまる空白で表示されてしまいます。2ページ分のデータをプレビューで表示させると、1ページ目にデータが表示され、2ページ目が空白・3ページ目に2ページ目のデータが表示されて4ページ目が空白という具合になっています。 改ページの方法で改善できる方法を教えてくださると助かります。

  • Accessレポートで特定条件で改ページしたい

    はじめましてこんばんは。 Accessのレポートで特定の条件で改ページしたいため質問させてもらいます。 特定の条件とは ・地域名が変わる ・もしくは住所が変わる という2点です。 現在テーブルとレポートを作るところで止まっております。 サンプルデータベースで行くと北海道は札幌市、旭川市、小樽市、北見市の4ページに分けたいと言う意味です。 改ページのコントロールを設置したところまではよいのですが条件の入力がうまくいきません。 どなたかご伝授いただけないでしょうか? http://hiyokokko.s78.xrea.com/img/test.zip 上記に作りかけのアクセスのファイルが置いてありますので見ていただけたら幸いです。 宜しくお願い致します。

  • 「Access レポート」での改ページについて

    今、Accessのレポートで、クエリで作成したデータの表示を行っています。そこで、テーブル名「出納帳」にフィールド名「科目コード」があり、ここに何種類かのコードが入っているのですが、そのコードが同じものだけを一枚の紙に抽出し、改ページを行って、また次の同じ科目コードのデータだけを抽出したいと考えています。  ツールボックスに「改ページ」というツールがあるのは見つけたのですが、どう動かしてみても、うまく利用できません。  上記の条件での改ページの仕方をご存知の方、ご教示をお願いいたします。

  • ACCESS レポートの改ページについて教えて下さい。

    レポートを作っているのですが、詳細のセクションで改ページを「カレントセクションの後」に設定しています。 すると詳細が一行だけであれば問題なくレポートが出ますが、 2行以上あると2行目以降が別のページに印刷されてしまいます。 レポートはこのようになっています。 ページヘッダー: ========= 見出し(会社名) ========= お客様氏名・住所・生年月日など _______ 日付/内容/金額 _______ 詳細: 日付/内容/金額 です。 これで各お客様の来店情報が出るようにしたいのですが、上に書いたように詳細がひとつなら、次ページに進めば次のお客様へとレポートは進むのですが、2行以上あれば2行目だけ次ページに印刷されてしまいます。 1人の情報を1ページにまとめるにはどうすればよいか教えて下さい。(20行くらい入るスペースは用紙に残っています)宜しくお願いします。

  • Accessのレポートでグループごとに改頁とページ数のクリア

    こんにちは。Access2000を使用しています。 支店毎の商品別売り上げ表を作成したいので、 レポートで「支店コード」と「商品コード」を グループ化しました。 支店が変わったら改頁するよう、「支店コードフッター」 に改頁コントロールを挿入しました。ここで以下の 問題とカスタマイズをおこないたいのです。 *********************************************** 1.最後の「支店コードフッター」を出力した後で、 改頁されてしまい、不要な紙(ページヘッダーと ページフッターだけ)が出力される。 2.ページフッターにページ番号([Page])を出力して いるが、支店が変わったら(ページフッターを出力 したら)クリアーして「1ページ」から出力したい。 *********************************************** 以上の2点を解消する策をどなたかよろしくお願い いたします。

  • Accessレポートでの改ページ

    Accessのレポートで、明細行を必ず8行ずつ印刷したいのです。 8行に満たない場合は、8行になるまで空白行を加えます。 そして、ヘーダー部に明細の金額合計があり、最終ページはヘッダー部を含めて8行にしたいので、明細行が7行となります。 とりあえず↓ 印刷する明細行数を常に8の倍数になるように空白行を作り、8行ごとに改ページしてみました。 しかし、最初の1ページ目はちゃんと8行で改行されますが、2ページ目からは、1行ずつしか印刷されません。 例えば、明細レコードが9レコードの場合、空白行含めて15行の明細をつくりました。 それを以下のプログラムで実行すると、9レコード目から15レコード目までは、1ページに1行ずつしか印刷されません。 どうすればいいのでしょうか? どなたかよろしくお願いします。 ***************************************************** Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer) '印刷行の初期化 cntPage = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) '印刷行を更新 cntPage = cntPage + 1 If cntPage = 8 Then '改ページ Me.Section(acDetail).ForceNewPage = 2 '印刷行の初期化 cntPage = 0 End If

  • アクセス レポートに線引き

    アクセス2000のレポートです。 Private Sub 詳細_Format(~~ If Me.CurrentRecord Mod 5 = 0 Then Me.Line (~~~~ End If End Sub のように、5行おき線を引いています。 でも、1ページ目が全部で18行だとすれば、2ページ目は3行目に線が引かれます。 改ページされたら、また5行目に線を引くにはどうしたらよろしいでしょうか?

  • Accessでのレポートにおいて

    現在レポートを作成しているのですが,自動改ページされた時に、グループ化された項目名を再度表示するという処理を行いたいのですがうまくいきません。 具体的には、メーカー名、店舗名の順でグループ化しています。 そして表示したい項目名を記述した後に、商品コード、商品名等のデータを該当件数分、行に表示していきます。 イメージとしては以下の感じです。 メーカー名 店舗名1 商品コード 商品名 111111111 aaaaaa 222222222 bbbbbb 以下続く  以下続く 店舗名2 商品コード 商品名 111111111 aaaaaa 222222222 bbbbbb 以下続く  以下続く ちなみにメーカー名が変わると改ページをするという条件があります。 ページの最大行を超えると自動で改ページが行われますが,ページが変わった時に、再度各項目名を表示したいのです。 店舗名1 商品コード 商品名 111111111 aaaaaa 222222222 bbbbbb 333333333 cccccc 444444444 dddddd 555555555 eeeeee 最後の行 自動改ページ 商品コード 商品名  ←ここに項目名を表示させたい 666666666 fffffff ページヘッダに項目名を追加記述すると、ある店舗のデータ表示が最後の行で終わると、次のページに次の店舗データを表示する際に項目名、店舗名、項目名と項目名を2回表示する事になり、このような事を避けたいので,ページヘッダには項目名は記述できないのではないかと考えています。 上記の説明でわかりにくければ、ご指摘ください。 宜しくお願いします。