
クエリ「納品書」を元にしたレポート「納品書」(※'クエリ名とレポート名は同名)は
フィールド「顧客番号」(テキスト型)でグループ設定をしています。
レポートをPDF出力する際、グループごとにファイルを保存したいと思います。
しかし、VBA実行時に「パラメータが少な過ぎます。7を指定して下さい。」と
エラーが出てしまい、行き詰まっています。
VBAの知識もほとんど無い為、どこで躓いているか教えていただけないでしょうか。
また、
他サイトで申し訳ありませんが・・・、
●ACCESSVBA レポートをグループ毎に別のPDFファイルとして保存
http://detail.chiebukuro.yahoo.co.jp/qa/question …
こちらの回答を参考に、以下のように作成しました。
(以下、レコードソース)
---------------------------
Const TBL_NAME = "納品書"
Const RPT_NAME = "納品書"
Const PDF_PATH = "C:\Users\Desktop\
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "SELECT DISTINCT 顧客番号 FROM 納品書", CurrentProject.Connection, adOpenStatic, adLockReadOnly
Do Until rs.EOF
pdfName = rs!顧客番号
DoCmd.OpenReport RPT_NAME, acViewPreview, ,"顧客番号=" & rs!顧客番号, acWindowNormal
DoCmd.OutputTo acOutputReport, RPT_NAME, acFormatPDF, PDF_PATH & Format(date,"yyyymmdd") & ".pdf"
DoCmd.Close
rs.MoveNext
Loop
---------------------------
No.2ベストアンサー
- 回答日時:
どの程度改善できるかは不明です。
単なる思いつきなので試していません。フォームを一つ作成します。仮に名前を「F_PDF出力」にします。
F_PDF出力のレコードソースを、SELECT DISTINCT 顧客番号 FROM 納品書 にします。
レコードセットはスナップショットにします。
フォーム上に顧客番号のテキストコントロールを置きます。
もう一つ非連結のテキストボックスを置き、コントロールソースには
=[CurrentRecord] & " / " & Count(*) とします。
上はどこまで進んでいるか確認するためです。
あとは、コマンドボタンを一個。
レポートのレコードソースをパラメータークエリにして
上記フォームの顧客番号を参照するようにします。
コマンドボタンのクリック時イベントなどに
Const TBL_NAME = "納品書"
Const RPT_NAME = "納品書"
Const PDF_PATH = "C:\Users\Desktop\
Docmd.GoToRecord acDataForm,me.name,acFirst
Do
DoCmd.OutputTo acOutputReport, RPT_NAME, acFormatPDF, PDF_PATH & Format(date,"yyyymmdd") & ".pdf"
If Me.Recordset.RecordCount = Me.CurrentRecord Then
MsgBox "最終レコードまで出力しました。"
Exit Sub
End If
Docmd.GoToRecord acDataForm,me.name,acNext
Loop
とします。
これで上手く行けばプレビューにかかる時間が短縮できるはずです。
どうもありがとうございます!
いただいた回答で作成したところ、大幅に処理時間が短縮されました。
本当に助かりました。
ありがとうございました。
No.1
- 回答日時:
どの行でエラーになって止まっていますか?
rs!顧客番号 のデータ型かも。
この回答への補足
ありがとうございます。
ご指摘の箇所のデータ型の不一致でエラーでした。
データ型を数値で合わせたところ、無事動作しました。
しかし、さらに、
顧客番号が100件程あり、
顧客番号件数分レポートの実行、出力を繰り返す為
膨大な処理時間がかかってしまうことに気がつきました・・・。
一度の質問で重ねてお尋ねして申し訳ございませんが、
いちいちレポートを実行せず、1度のレポートを開いた後、
顧客番号ごとにファイルを分けていく方法はないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESS2010 レポートを分割しPDF化
Access(アクセス)
-
Access2007でページ毎にPDFを出力したい
その他(Microsoft Office)
-
AccessでPDFを複数ファイルにして出力
Visual Basic(VBA)
-
-
4
レポートの印刷を一括ではなくグループごとに行いたいのですが
Access(アクセス)
-
5
AccessのレポートからPDFをページ毎に作成
Access(アクセス)
-
6
AccessVBA複数レポート条件毎にまとめて出力
Visual Basic(VBA)
-
7
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
8
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
9
Accessフォーム全レコードをPDFで個別保存
その他(データベース)
-
10
Access テーブルを分割してエクスポートしたい
Access(アクセス)
-
11
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
12
access テキストボックスの値取得
Access(アクセス)
-
13
Accessのレポートの集計に条件をつけたい
その他(データベース)
-
14
Access2013でレポートを名前を付けて一括PDF化する方法
その他(データベース)
-
15
Access2010 「演算子がありません」エラー
その他(データベース)
-
16
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
17
アクセスのレポート合成(複数のレポートを一つにまとめる方法)
その他(データベース)
-
18
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
19
[DOS] コピー先に同じファイル名がある場合、名前を変えて...
その他(プログラミング・Web制作)
-
20
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Wordマクロで指定したフォルダ...
-
コマンド(例えばls)の出力結果...
-
大量のHTMLデータのテキスト、...
-
VC++でUTF-8のファイルを出力し...
-
ファイルの文字コードをUTF-8に...
-
テキストファイルに改行コード...
-
C言語でのppmファイル作成
-
構造体のファイル出力
-
【ExcelVBA】UTF-8(BOM無)でC...
-
VB.NETでExcelファイルを出力す...
-
MATLABのCSV形式での書き込みに...
-
パイソンでのVSコードで
-
Acccess レポートをグループ別...
-
外国語とCSVについて
-
VBA フォルダ見える化のコード...
-
ファイル出力の場所を指定
-
重複チェックプログラム
-
Maximaでダブルクリックでwxmフ...
-
C++/CLIにて、System.String^型...
-
printfだと出力されるのにfprin...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Acccess レポートをグループ別...
-
コマンド(例えばls)の出力結果...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
VC++でUTF-8のファイルを出力し...
-
ファイル形式またはファイル拡...
-
ファイルの文字コードをUTF-8に...
-
ファイル出力の場所を指定
-
ファイルI/O完了待ち
-
大量のHTMLデータのテキスト、...
-
シェルコマンドの 2>&1 とはど...
-
Wordマクロで指定したフォルダ...
-
gccによって、BOM付きのUTF-8で...
-
外国語とCSVについて
-
AccessVBA複数レポート条件毎に...
-
pcap形式データをテキストへ抽出
-
重複チェックプログラム
-
テキストファイルに改行コード...
-
BitBltについて。
-
C++ fprintf_sの使い方がわからん
-
半年以上前のファイルの時刻表示
おすすめ情報