|
どうやらできました!
> acViewNormalじゃなくacViewPreviewでプレビューしてみるとどうですか?
> あとacHiddenとったらどうですか?
acHiddenを削除するだけでは変化ありませんでした。
プレビューにしたところ、無事に用紙サイズの変更を反映させることができました。以下に成功したコードを記載いたします。何かご意見があればお聞かせ下さい。
なお、コード中では、TBL_NAME_PRT_UKEというプリンタ名、用紙サイズを持つテーブルから各値を取得しています。また、元々acViewNormalでの使用感に近づけるため、acHidden、PrintOutメソッドを使用しております。
本当に助かりました。どうもありがとうございました。
モジュール:
Public Function print_Report() As Byte
On Error GoTo print_Report_Err
print_Report = 9
Dim prt As Printer
Dim valPaperName As Variant
Echo False
'レポートを印刷対象として設定
Set prt = Application.Printers(DLookup("PRT_NM", TBL_NAME_PRT_UKE, "SIYO_FLG=true"))
' 選択したプリンタをこのセッションで通常使うプリンタとして設定します。
valPaperName = DLookup("PAPER_SIZE", TBL_NAME_PRT_UKE, "SIYO_FLG=true")
Set Application.Printer = prt
'DoCmd.openReport REPORT_NAME, acViewNormal, , , , acHidden
DoCmd.openReport REPORT_NAME, acViewPreview, , , , acHidden
DoCmd.SelectObject acReport, REPORT_NAME, True
DoCmd.PrintOut
print_Report_Exit:
Echo True
print_Report = 0
Exit Function
print_Report_Err:
MsgBox Err.Description
End Function
レポート:
Private Sub Report_Open(Cancel As Integer)
Dim valPaperName As Variant
valPaperName = DLookup("PAPER_SIZE", TBL_NAME_PRT_UKE, "SIYO_FLG=true")
Me.Printer.PaperSize = Left(valPaperName, InStr(1, valPaperName, " ") - 1)
End Sub
|
|