- ベストアンサー
1ページに表示されるレコードのカウントを数えたい
環境 OS/XP ACCESS/2000 1ページに最大30行表示できます 5レコードの時 1ページ目 5件と表示 34レコードの時 1ページ目30件と表示 2ページ目4件と表示 実現可能でしょうか ご指南ください
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
レポートでの話ですよね。 レポートヘッダーかレポートフッターにテキストボックスを配置して、下記のように設定します。 コントロールソース =Count(*) 名前 件数 可視 いいえ このテキストボックスで件数が取得できます。 ページヘッダーかページフッターにテキストボックスを配置して、下記のように設定します。 コントロールソース =IIf([Page]=[Pages], [件数] Mod 30 & "件" , "30件") 最終ページの場合([Page]=[Pages])は、件数を 30 で割った余りを表示して、それ以外は 30件 と表示する。 これで、希望の表示となるでしょう。
その他の回答 (2)
- m3_maki
- ベストアンサー率64% (296/460)
> コントロールソース =IIf([Page]=[Pages], [件数] Mod 30 & "件" , "30件") > > 最終ページの場合([Page]=[Pages])は、件数を 30 で割った余りを表示して、それ以外は 30件 と表示する。 0 を含めて 30 の倍数に対応するには =IIf([Page]=[Pages],[データ数]-([Pages]-1)*30 & "件","30件")
- nda23
- ベストアンサー率54% (777/1415)
レポートのコントロールフッタならできます。 但し、元になるクエリを工夫しなければなりません。 先ず、件数ですが、並び替え項目を基準として 自分より小さいキーのレコード数をカウント します。次に、コントロールブレークとして30毎に 値の変わる項目を作ります。つまり、件数から1を 減じて30で割ったものです。 コントロールヘッダ/フッタはこの項目が変化 した時に生成されるからです。 不等号結合のため、ビルダでは生成できません。 以下のようにします。 SELECT A.xx,A.yy,・・・, SUM(B.key) As K,Int((SUM(B.key)-1)/30) As P FROM テーブル As A LEFT JOIN テーブル As B ON A.key >= B.key GROUP BY A.xx,A.yy,・・・ 項目Pのコントロールフッタを設置し、テキスト ボックスのコントロールソースをKとすればよい でしょう。
お礼
ご指南ありがとう御座います 早速 試しました 上手く表現しました 皆様 誠にありがとう御座います