<HOME <お願い事項 <Access2002 TOP <Access2000 TOP <サイト内検索 | ||
MS-Access97超入門>自動採番? |
簡単な自動採番 複雑な自動採番 クエリで連番 レポートで連番 コードを書かずに連番 |
レポートの場合は比較的楽です。
レポート内にそういうプロパティもありますし、コードも書きやすい。
それは、「フォーマット時」というイベントがあるからなんですね。
レポートは印刷してしまえば、フォームやクエリーのように、スクロールバーを動かしたりするような動きがいっさいないので、
1行ごとに細かい判断をさせていくことが可能なんです。
それを利用した、カンタンな番号の計算方法です。
カンタンなレポートを作ってみました。お隣のページで使った、[テーブルC]というのを基にしたレポートです。
で、詳細部分の左端のほうにでも、ちいさいテキストボックスを作ります。
非連結。どのフィールドとも結びついてないただのテキストボックスですね。
名前は「テキストxx」のままでもいいですが、あたしはここでNoと変えてみました。
(実際には、Noっていう名前をテキストボックスなどにつけるの、あんまりよくないみたいですね・・・
「予約語」として扱われる可能性が高いので・・・このページの中の説明だけってことで)
後は、レポートヘッダーのフォーマット時イベントと、詳細のフォーマット時イベントに、下のようなコードを書けば完了。
これもただ足し算して、レポートの先頭のところで変数をゼロにしているだけですよね。
Option Compare Database
Option Explicit
Dim Nbr
Private Sub レポートヘッダー_Format(Cancel
As Integer, FormatCount As Integer)
Nbr = 0
End Sub
Private Sub 詳細_Format(Cancel As Integer,
FormatCount As Integer)
Nbr = Nbr + 1
Me![No] = Nbr
End Sub
と、このレポートを開くと、こんな感じで、非連結のNoというフィールドに値が入ります。