2017-03-07 11 views
1

クエリからレコードをグループ化し、各グループを別のページに印刷するAccess 2013のレポートがあります。 VBAに記録の各ページがどのページに印刷されるかを知る方法はありますか?アクセスレポートのレコードはどのページに印刷されますか?

編集 - コメントからこれらの詳細を追加しました:
レポートは1〜5ページのいずれかになります。各ページに印刷される参照にページ番号を含めることにしました。 "CN001-x"ここで、xはページ番号です。その後、その値をデータベースのテーブルに戻します。

レポートはデータにグループ化を適用し、グループごとに新しいページを作成し、各ページにはさまざまなレコード数が割り当てられます。

+0

レコードがどのページに終わる可能性があるかを変える/指示する変数がたくさんあります。レポートは通常何ページですか?グループにクエリを提供できますか?最後に、なぜレコードが記録されているページを知る必要がありますか?これらのすべてが、私が適切な解決方法を決定するのに役立ちます。 –

+0

レポートの内容は1〜5ページです。各ページに印刷される参照にページ番号を含めることにしました。 "CN001-x"ここで、xはページ番号です。その後、その値をデータベースのテーブルに戻します。 – ChipsLetten

+0

毎回各レコードは同じ高さですか?最初のレコードの高さは、レポートの23番目のレコードの高さになるでしょうか? –

答えて

0

Count()を使用して複雑な式を使用すると、レコードがどのページに着陸するかを計算できます。たとえば、最初のページに20レコードが収まる場合は、21番目のレコードが2ページ目にあることがわかります。私はあなたのレポートやコードを見ることができないので、それを説明する必要があります。

レポート内のレコードを数える数式を作成し、その数式を比較で使用して、数が1〜20の範囲内にあるかどうかを確認します。もしそうなら、それに値1を割り当ててください。そして、そのフィールドをあなたの必要とするフィールドの他の部分と単に連結してください。あなたが必要と思う反復の回数だけ、以下のようなことをしてください。あなたがページ数が7以上にならないことを知っていれば、私はそこで停止するでしょう。

IF Count(Field1) <= 20 THEN 
    1 
ELSE IF Count(Field1) > 20 AND Count(Field1) <=40 THEN 
    2 
Else 3 
End IF 
+0

ありがとうございますが、レポートはグループ単位で行われ、各ページのレコード数は異なります。私は基本的なクエリを変更する必要があると思います。 – ChipsLetten

+0

または、各ページに繰り返し表示される非常に小さなヘッダーセクションを持つことができます。そして、変数を1ずつインクリメントするたびにページ番号をシミュレートします。次に、連結式でこの変数を使用してください –

+0

これは良いアイデアのように思えます。そのページに表示されているレコードだけをループする方法を知っていますか? – ChipsLetten

関連する問題