Microsoft Access 掲示板

フォーム上にレポートの総枚数を表示させたい

5 コメント
views
4 フォロー

お世話になります。

F_読み取りというフォーム内に配置したテキストボックスに、R_印刷というレポートの総ページ数を表示させたいです。

コントロールソースのビルドで=[Reports]![R_印刷].[Pages]とやってみましたが、#Name?と表示されてしまいます。

Anonymous
作成: 2024/02/13 (火) 10:27:13
通報 ...
1

レポートをプレビューで表示してない状態で取得したいということでしょうか。

だとしたらそれはできないので、プレビューを非表示で開いて総ページ数を取得して、プレビューを閉じるという処理が必要になります。

下記のページでちょうどその関数を紹介していますので、ご参考に。

レポートで印刷する前にページ数を取得する関数 - hatena chips

2
Anonymous 2024/02/13 (火) 10:57:24 23e8e@44ebd >> 1

「F_読み取り」内に配置した「btn_印刷」というコマンドボタンのクリック時イベントで「R_印刷」を開き、そのタイミングで「txb_総ページ数」というテキストボックスにページ数が表示されるようにしたいです。
このような場合でもレポートを閉じる処理をしなければならないのでしょうか?

3
Anonymous 2024/02/13 (火) 11:03:15 23e8e@44ebd >> 2
Private Sub btn_印刷_Click()

Dim rpt As Report
Dim PageCount As Integer

DoCmd.OpenReport "R_印刷", acViewPreview

Set rpt = Reports("R_印刷")
PageCount = rpt.Pages

Me.txb_総ページ数.Value = PageCount

End Sub

こんな漢字で書いてみましたが、レポートは25ページあるにも関わらずtxb_総ページ数には0が表示されます。

4

レポートを開いているなら、取得できます。

レポート上のテキストボックスのコントロールソースの式に[Pages]がありますか。
コントロールソースで[Pages]を参照していないと、0 になります。

5
Anonymous 2024/02/13 (火) 13:19:47 23e8e@44ebd

R_印刷のヘッダーにテキストボックスを配置し、コントロールソースを=[pages]としたところ、無事に入るようになりました!ありがとうございました。