クエリ「納品書」を元にしたレポート「納品書」(※'クエリ名とレポート名は同名)は
フィールド「顧客番号」(テキスト型)でグループ設定をしています。
レポートを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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Excel(エクセル) エクセル2019でPDFファイル名に枝番号をつけたい。 アクティブワークシートを印刷した後の処理とし 4 2023/06/06 21:00
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) 複数ページあるPDFファイル内の文字列等の情報をキーにPDFをグループ分け分割したい。 2 2022/06/25 09:51
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) 【マクロ】ファイル名の日付によって、保管するフォルダを、自動選択したい 4 2023/08/16 11:24
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Excel(エクセル) エクセル 多数のファイルから値を抜き出したい 4 2022/12/12 16:49
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ACCESS2010 レポートを分割しPDF化
Access(アクセス)
-
ACCESSレポートをPDFに出力したい
その他(OS)
-
AccessでPDFを複数ファイルにして出力
Visual Basic(VBA)
-
-
4
Accessフォーム全レコードをPDFで個別保存
その他(データベース)
-
5
AccessのレポートからPDFをページ毎に作成
Access(アクセス)
-
6
Access2007でページ毎にPDFを出力したい
その他(Microsoft Office)
-
7
Access2013でレポートを名前を付けて一括PDF化する方法
その他(データベース)
-
8
AccessVBA複数レポート条件毎にまとめて出力
Visual Basic(VBA)
-
9
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
10
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
11
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
12
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
13
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
14
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
15
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
16
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
17
Access テーブルを分割してエクスポートしたい
Access(アクセス)
-
18
AccessVBAでレポートをPDFで出力
Visual Basic(VBA)
-
19
アクセスのレポート合成(複数のレポートを一つにまとめる方法)
その他(データベース)
-
20
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル出力の場所を指定
-
CSVファイルを任意の場所に出力...
-
井戸型ポテンシャルの数値解シ...
-
Acccess レポートをグループ別...
-
入力ファイルを読み込み,得点...
-
windowsでテキストファイルの比...
-
ファイル比較について
-
コマンド(例えばls)の出力結果...
-
CSV形式に変換
-
C++ fprintf_sの使い方がわからん
-
VC++でUTF-8のファイルを出力し...
-
setvbufってどう使うの?
-
C言語のローカル変数初期化に...
-
C#でエクセルみたいな重複行削除
-
シェルコマンドの 2>&1 とはど...
-
標準出力とファイルに効率的に...
-
VBA でメモ帳へ保存する際の保...
-
ファイル形式またはファイル拡...
-
Accessでのレポート印刷待機方法
-
VB2008少し理解しました^^
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
Acccess レポートをグループ別...
-
ファイル出力の場所を指定
-
ファイル形式またはファイル拡...
-
シェルコマンドの 2>&1 とはど...
-
Wordマクロで指定したフォルダ...
-
テキストファイルに改行コード...
-
fwprintf()について
-
二次元配列をクリップボードに...
-
外国語とCSVについて
-
ファイルの文字コードをUTF-8に...
-
csvファイルでの出力について
-
C言語での印刷方法
-
フォルダにあるPDF情報の抽出(VBA)
-
(VBA)書式が変更されてしまい...
-
C言語での縦方向のファイル出力...
-
CSVファイルを任意の場所に出力...
-
標準出力とファイルに効率的に...
-
CreateProcess関数と実行後の戻...
おすすめ情報