プロが教えるわが家の防犯対策術!

アクセス2000を使用しています。
レポートのNexrRecordプロパティの中身が分からないので
教えてください。
 以下のテーブルを元にレポートを作成しました。
******************************
テーブル名:Tテスト
ID 名前  (←フィールド名)
------------------------------
1 田中
2 佐藤
3 鈴木
4 小林
5 大橋
******************************
レポートの詳細セクションで2件目の
フォーマット時、NextRecordをfalse
にしましたところ、以下のように出力
されました。

「出力結果」
1 田中
2 佐藤
3 鈴木
4 小林
5 大橋

つまり、テーブルの内容がそのまま出力されました。
素人考えでは、
1 田中
2 佐藤
2 佐藤
3 鈴木
4 小林
5 大橋
なるものとばかり思っておりました。
NextRecordがいつどのように働くのか詳しく教えて
いただきたいと思うのですが、どうぞよろしくお願い
いたします。
(レポートのセクションの実行順がよくわかりません)

A 回答 (3件)

>いろいろなコンテンツを調べてみると、全て


>Format時に「a」をカウントしているようでした。
>なぜうまくいくのでしょうか?

多分、ライターさんたちは プレビューだけで確認し、
実際に印刷していないのでは?
    • good
    • 0
この回答へのお礼

お礼が遅れてすみませんでした。
プレビューしたものと印刷が異なって
しまうこと自体おかしいとは思います
が、なるほど、そうなのでしょうね。
どうもありがとうございました。

お礼日時:2003/02/28 14:51

>レポートの詳細セクションで2件目の


>フォーマット時、NextRecordをfalse

>レコードの件数は5件しかないのになぜ11行もでるのでしょうか?

印刷時のイベントではどおでしょうか?

フォーマット時で aの値を設定しても、
印刷時では違う値になります。

これは、レポート作成時に、レコード(?)を2度読みしているからだと思います。
1度目は レポートフォーマット用に 読み込みます。
2度目は、1度目で作成したフォーマットに 加工を加えたりするため

たとえば、ページ設定ですが、
通常は レポートのページ数は 1から連番になります。
総ページ数は そのまま ページ数の合計です。

これを、VBAを使用すれば、
集計のグループが変わるごとに ページ番号を 1から始めたり、
グループごとに総ページ数をかえたりできます。
この作業が 2度目に読まれたときに行われます。

ですから、5レコードなら、プレビュー時には
a の値が 1 から 5 でも、
印刷時には
a の値が 6 から 10 とかになってしまいます。

ですから、このような操作を行うなら、印刷時の方が適していると思います。

この回答への補足

印刷時にしたらうまくいきました!
最終的には一枚に10行固定で出力したい
(データなしでも空白行を出力)のですが、
いろいろなコンテンツを調べてみると、全て
Format時に「a」をカウントしているようでした。
なぜうまくいくのでしょうか?
同じようにしても私のほうはうまくいきませんでした。
「Fomat」という意味を理解するにはまだ時間がかか
りそうです。
どうもありがとうございました。

補足日時:2003/02/26 08:33
    • good
    • 0

こんにちは、ats8181oyajiです



私がテストしましたが
きちんと
1 田中
2 佐藤
2 佐藤
3 鈴木
のようになりましたよ

>レポートの詳細セクションで2件目の
>フォーマット時、NextRecordをfalse
>にしましたところ、以下のように出力
>されました。

ロジックはどうなっていますか?

私のテストでのロジックです

Option Compare Database
Dim a As Long

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
If a = 1 Then
NextRecord = False
End If
a = a + 1
End Sub

では

この回答への補足

回答ありがとうございます。
コードは以下のとおりです。
*******************************************************************
Option Compare Database

Dim a As Integer

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
a = a + 1
Debug.Print a, Me.名前
If a = 2 Then
Me.NextRecord = False
End If
End Sub
******************************************************************
イミディエイトウィンドウで値をみると
1 田中
2 佐藤
3 佐藤
4 鈴木
5 小林
6 大橋
7 田中
8 佐藤
9 鈴木
10 小林
11 大橋
になっています。
レコードの件数は5件しかないのになぜ11行もでるのでしょうか?
しかし、出力は5件です。
何かオプションの指定でもあるのでしょうか?
引き続きお願いいたします。

補足日時:2003/02/25 16:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!