
使用MS Access 2010
以前から何度かここでお世話になっております。よろしくお願いします。
「受注一覧」という表形式フォームに日々の受注客百件程度が表示されています。レコードのフィールドに[ID]という受注IDコードがあります。
受注確認のメールにPDFの添付ファイルを作成するための「受注確認PDF」というレポートがあり、
それを使って"受注確認書(受注ID:" & [ID] & ")"というファイル名で"C:\PDF"フォルダーに一件(1ページ)づつ保存するボタンを作成する必要に迫られておりますが、ネットでいろいろ調べて、もう少しというところでなかなうまくいきません。
「受注一覧」フォーム上のボタンに レポートを開くマクロの実行(2000回)-次のレコード としたマクロを登録し、「受注確認PDF」レポートの”開くとき”イベントに
Private Sub Report_Open(Cancel As Integer)
DoCmd.OutputTo acOutputReport, "受注確認PDF", acFormatPDF, "C:\PDF"
Reports!受注確認PDF.Caption = "受注確認書(受注ID:" & [ID] & ")"
と書きました。
マクロは上から順にPDFは開いているようなのですが、フォルダーにはPDFが一枚も保存されません。
どうも開いているだけで保存されないようです。
またマクロも最後のレコードになったときのアクションを書いていないため、「次のレコードがありません」というエラーメッセージで終わります。
フォーム上の全件を"受注確認書(受注ID:" & [ID] & ")"という名前で"C:\PDF"に別々にPDFで保存し、最後のレコードになったら完了するVBAを完成したいのですが、どなたか助けていただける方がいたらお願いいたします。当方、VBAは見よう見まねで書いているだけで意味はあまり理解できないレベルです。
No.1ベストアンサー
- 回答日時:
間違いがいくつかあります。
DoCmd.OutputTo acOutputReport, "受注確認PDF", acFormatPDF, "C:\PDF"
上記のコードで、出力ファイル名が指定されていない。
ちゃんと拡張子も含めてファイル名を指定する必用があります。
さらにファイル名には、: は使用できません。
レポートを開くときのイベントでOutputToを実行してますが、このイベントではOutputToは実行できません。フォーム上のボタンのイベントプロシージャで OutputTo を実行しましょう。
「一件(1ページ)づつ保存する」ということですが、具体的にはどのように1件だけ抽出しているのでしょうか。レポートのレコードソースをパラメータクエリにしているのでしょうか。それともレポートを開くアクションで Where条件式を設定しているのでしょうか。
パラメータクエリで、受注一覧フォームの受注IDを参照しているとして回答します。
また、マクロとイベントプロシージャを混在させるのは煩雑ですので、イベントプロシージャのみで記述します。
受注一覧フォーム上のコマンドボタン(コマンド1)のクリック時のイベントプロシージャ
Private Sub コマンド1_Click()
DoCmd.GoToRecord acActiveDataObject, , acFirst
Do
If Me.Recordset.RecordCount = Me.CurrentRecord Then
MsgBox "最終レコードまで出力しました。"
Exit Sub
End If
DoCmd.OutputTo acOutputReport, "受注確認PDF", acFormatPDF, "C:\PDF\受注確認書(受注ID " & Me.顧客コード & ").pdf"
DoCmd.GoToRecord acActiveDataObject, , acNext
Loop
End Sub
この回答への補足
hatena1989様
ご連絡が遅くなり、申し訳ありません。
出来ました!完璧です!ありがとうございました。
私のレベルだとすべての記述を理解するのは困難ですが、少しずつ勉強していきたいと思います。
またご相談すると思いますのでその時はよろしくお願いします。
hatena1989様
早速のご回答ありがとうございます!
>パラメータクエリで、受注一覧フォームの受注IDを参照しているとして回答します。
はい、そのとおりです。
ただいま帰宅してしまったため、明日出社次第ご教授いただいた記述でチャレンジしてみます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- PDF 保存したPDFファイルが開けなくなり、困っています 1 2022/09/15 21:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- その他(データベース) accessでのフォームの連携について 2 2022/06/14 00:45
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
このQ&Aを見た人はこんなQ&Aも見ています
-
AccessのレポートからPDFをページ毎に作成
Access(アクセス)
-
Acccess レポートをグループ別に出力する
Visual Basic(VBA)
-
ACCESS2010 レポートを分割しPDF化
Access(アクセス)
-
-
4
Access2007でページ毎にPDFを出力したい
その他(Microsoft Office)
-
5
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
6
アクセスで特定のレコードのみのレポートを印刷したいのですが。
Access(アクセス)
-
7
AccessでPDFを複数ファイルにして出力
Visual Basic(VBA)
-
8
Access_Formのデザインビュー画面を拡大表示
Access(アクセス)
-
9
ACCESSテーブルを RecordSet以外で1レコードづつ読む方法
Visual Basic(VBA)
-
10
yes/no型のチェックができない(アクセス2003)
Access(アクセス)
-
11
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2000 リレーションについて
-
Access2003 フォームの合計の...
-
SQLコマンドのorder by句
-
Accessでデータベースの設計
-
オラクルのビューについて
-
ACCESS VBA クエリを開く
-
ストアドプロシージャにてフェ...
-
JOIN句の記述の違いによるパフ...
-
受注明細テーブルについて
-
正規化
-
アクセスのテーブルを分ける理...
-
【マクロ】列を折りたたみ非表...
-
エクセルVBAで5行目からオート...
-
ACCESSのSQLで数値型に変換する...
-
Accessのクエリをクロス集計ウ...
-
jwwのクロスラインカーソルの角...
-
accessで指定期間の曜日カウン...
-
ACCESS クエリーから件数取得
-
Access2013 クエリ 他のテーブ...
-
SQLで違うテーブルの集計結果を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessの帳票フォームで重複デ...
-
Accessフォーム全レコードをPDF...
-
あるフィールドの最大値を条件...
-
MS ACCESS 商品価格変更時の該...
-
アクセスのテーブルを分ける理...
-
ACCESS VBA クエリを開く
-
Accessでクエリの作成、多対1対...
-
Excelで重複する情報に番号を付...
-
【Access2000】マシンIDの取得方法
-
フィールド名が取得したい
-
再計算って出来ますか?
-
受注明細テーブルについて
-
SQL文でのDISTINCT
-
accessについて
-
Access2021 「ISNULL関数には引...
-
usingの意味がわからないのですが
-
曜日を表す項目
-
集計結果を別テーブルに更新ク...
-
SQL Server 2005 Expressで営業...
-
【Accessクエリ】存在しないデ...
おすすめ情報