使用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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Acccess レポートをグループ別に出力する
Visual Basic(VBA)
-
Access2007でページ毎にPDFを出力したい
その他(Microsoft Office)
-
Access2013でレポートを名前を付けて一括PDF化する方法
その他(データベース)
-
-
4
ACCESS2010 レポートを分割しPDF化
Access(アクセス)
-
5
ACCESSレポートをPDFに出力したい
その他(OS)
-
6
AccessでPDFを複数ファイルにして出力
Visual Basic(VBA)
-
7
AccessのレポートからPDFをページ毎に作成
Access(アクセス)
-
8
アクセスVBAのMe!と[ ]
Access(アクセス)
-
9
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
10
AccessVBAでレポートをPDFで出力
Visual Basic(VBA)
-
11
accessのレポートであとから他のテーブルのフィールドを追加する方法
Access(アクセス)
-
12
Accessのレポート機能で空白になる2ページ目を印刷したくない
Access(アクセス)
-
13
アクセスのレポートをPDF化する際のサイズダウン
その他(データベース)
-
14
実行時エラー '3464': 抽出条件でデータ型が
Access(アクセス)
-
15
Access VBA を利用して、フォルダ内のファイルの名称を変更したい
Access(アクセス)
-
16
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
17
AccessからExcelのファイルを起動する
その他(データベース)
-
18
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
19
【Access】クエリで抽出したデータをCSV形式でエクスポートできますか?
Access(アクセス)
-
20
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MS ACCESS 商品価格変更時の該...
-
ACCESS VBA クエリを開く
-
Accessの帳票フォームで重複デ...
-
Accessフォーム全レコードをPDF...
-
集計結果を別テーブルに更新ク...
-
ACCESSでの重複箇所
-
あるフィールドの最大値を条件...
-
accessでの請求管理について
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
Accessでテーブルの値をテキス...
-
Access テキスト型に対する指定...
-
「直需」の意味を教えてください
-
エクセルグラフの凡例スペース
-
ACCESSに同時アクセス(編集)を...
-
Accessでテーブル名やクエリ名...
-
ACCESSのクエリで集計で、先頭...
-
ACCESSで和暦を西暦に・・・
-
ORACLEでLONG項目からCHAR項目...
-
作番ってどういう意味でしょうか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessでのフォームの連携について
-
accessでの請求管理について
-
あるフィールドの最大値を条件...
-
MS ACCESS 商品価格変更時の該...
-
Access2021 「ISNULL関数には引...
-
Accessフォーム全レコードをPDF...
-
usingの意味がわからないのですが
-
アクセスのテーブルを分ける理...
-
Accessの帳票フォームで重複デ...
-
ACCESS VBA クエリを開く
-
集計結果を別テーブルに更新ク...
-
Accessについて(DLOOKUP関数、...
-
SQL EXISTS演算子について
-
accessについて
-
曜日を表す項目
-
Accessでクエリの作成、多対1対...
-
フィールド名が取得したい
-
SQL文でのDISTINCT
-
SQL Server 2005 Expressで営業...
-
SQLで合計表示
おすすめ情報