Microsoft Access 掲示板

Access印刷部数指定と連番印刷

4 コメント
views
4 フォロー

初めての相談になります。

VBA超初心者ですが教えて下さい。

フォーム上で「印刷部数」をテキストボックスに入力して、印刷ボタンを押すと指定した部数を印刷し

さらに連番も一緒に印刷されるようにするにはどうすれば良いのでしょうか?

【印刷部数】というテキストボックスを作成し、印刷ボタンを下記インベントプロシージャを設定しています。

Private Sub cmdPrint_Click()

Const DocName = "T_ケースマーク印刷データ(Tag Noあり) のコピー"

    DoCmd.Echo False

    DoCmd.OpenReport DocName, acViewPreview

    DoCmd.PrintOut acPrintAll, , , , Me!印刷部数

    DoCmd.Close acReport, DocName

    DoCmd.Echo True

End Sub

宜しくお願い致します

fukusan113
作成: 2024/10/28 (月) 17:17:47
通報 ...
1
hiroton 2024/10/28 (月) 18:50:03 99518@f966d

まずは確認ですが、

部数印字

こんな感じのことを通常のプリンタでやりたいってことでいいですか?

印刷するごとに印刷内容が変わるので、必要回数(部数分)印刷を繰り返します
印刷の実行時にDoCmd.OpenReportなら追加の情報を付与できるので、レポート側でその情報を使って印刷内容を変えます

印刷するレポート「T_ケースマーク印刷データ(Tag Noあり) のコピー」(以下単にレポート)に部数表示用のテキストボックス(名前:部数表示)を配置します
レポートにレポートヘッダーを設定して(可視プロパティ「いいえ」でかまわない)フォーマット時イベントを次の通りに設定します

Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
    Me!部数表示 = Me.OpenArgs
End Sub

印刷ボタンのイベントを次の通りにします

Private Sub cmdPrint_Click()
Const DocName = "T_ケースマーク印刷データ(Tag Noあり) のコピー"
    Dim i As Long
    
    DoCmd.Close acReport, DocName '部数表示設定のために閉じる
    For i = 1 To Me!印刷部数
        DoCmd.OpenReport DocName, acViewNormal, , , , i
    Next
End Sub

読み込み時(Report_Load)でいいかな?
→印刷だとイベントが発火しない(プレビュー表示なら発火する)

じゃあ開く時(Report_Open)で・・・
→値の変更不可

えー・・・印刷ごとに一回だけ実行されればいいんだけど・・・しかたない、レポートヘッダー使うか

Report_Loadイベントを使って、プレビュー表示→PrintOutCloseを繰り返してもいいとは思います

2
fukusan113 2024/10/29 (火) 15:40:30

hirotonさん
ありがとうございます。
設定してやってみたのですが、私の技術不足のせいか、うまくいきませんでした・・・
また、投稿説明不足もあったと思い、追加説明をさせて下さい。

下記フォームで、部数に印刷したい枚数を入力して、隣のNo.あり・なしが印刷ボタンになっていまして
画像1

印刷ボタンを押すと下記が指定枚数分印刷されるようになっています。
画像1

印刷画面の右上に、例えば印刷したい枚数が10枚ならフォームの部数に10を入力すると
1枚目 1/10  2枚目 2/10  3枚目3/10・・・という風に印刷したいです。

すみません、よろしくお願いします。m(__)m

3
hiroton 2024/10/30 (水) 08:53:56 1ba09@f966d >> 2

「現在部数 / 最大部数」で表記する方法はいくつかあると思いますが、そのまま単純にその形でテキストを流しこめばいいでしょう

とりあえず、テストしたサンプルの画像を貼っておきます

画像1


画像2


画像3

4
fukusan113 2024/10/30 (水) 15:12:24

hirotonさん
出来ました!
ありがとうございます、本当に助かりました!!