質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

2540閲覧

Accessで自動でPDFを作成したい

dokidoki_hamuo

総合スコア38

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2021/07/29 07:49

Accessで自動でPDFを作成したい

フォームからフィルターをかけ、レポートで連動しそのレポートをPDFにする。というVBAを作りました。

詳しい内容は

テキストボックスに1と入力しVBAのボタンを押す
キーになっているフィルターの1だけを抽出し、レポートと連動。
それをPDFにするという内容です。

ただキーになる数字を手で入力しなくてはならず、量が多いと時間がかかってしまいます。

キーになる数字を自動で入力したいのですが、Winactor等で自動入力する方法は
Winactorがインストールできないのでだめでした。

ネットで access 自動入力 などなど、色々調べてみたのですが
自分のやりたいことに合ったサイトが見つかりませんでした。

何か方法やサイト等教えていただけると嬉しいです。

初心者の質問にも答えられる方よろしくお願い致します。

VBA

1 2Private Sub コマンド224_Click() 3 4Dim spath As String 5Dim myname As String 6 7 Me.Filter = "キー='" & Me!テキスト221 & "'" 8 Me.FilterOn = True 9 10 spath = テキスト225 & "\" 11 myname = テキスト221 12 13 DoCmd.OpenReport "PDFにする", acViewReport, , Me.Filter 14 15 DoCmd.OutputTo acOutputReport, "PDFにする", acFormatPDF, spath & myname & ".pdf" 16 17 18End Sub 19

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

PDF作成毎に、キーの入力を必要とする作りを変更すれば良いのでは。

キーになる数字を格納するテーブルを新設し、そこに纏めてキーを登録。
PDF作成は、そのテーブルをループで読み込み処理するようにする。
イメージは以下です

VBA

1 Dim spath As String 2 Dim myname As String 3 Dim myFilter As String 4 Dim Rs As DAO.Recordset 5 spath = テキスト225 & "\" 6 Set Rs = CurrentDb.OpenRecordset("Key") 7 Do Until Rs.EOF 8 myname = Rs!Key 9 myFilter = "キー='" & myname & "'" 10 DoCmd.OpenReport "PDFにする", acViewReport, , myFilter 11 DoCmd.OutputTo acOutputReport, "PDFにする", acFormatPDF, spath & myname & ".pdf" 12 Rs.MoveNext 13 Loop

投稿2021/07/29 08:35

編集2021/07/30 02:58
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dokidoki_hamuo

2021/07/30 00:02

ご回答ありがとうございます! それでチャレンジしてみますね!作成中質問があった場合、ご教授頂けるととても助かります。よろしくお願い致します。
dokidoki_hamuo

2021/07/30 00:49

すみません、質問です。 テキストボックスにテーブルのkeyを一行づつ読み込むやり方がわかりません。 ネットで access テーブルの値を取得 一行づつ などなどやってみたのですが 見つけられませんでした。 【現在の状況】 テーブルkeyを用意しました。取得したいフィールド名はkeyです。 例えば 1行目 2 2行目 3 For i = 1 To 2 テキスト221 = DLookup("key", "key") Me.Filter = "キー='" & Me!テキスト221 & "'" Me.FilterOn = True spath = テキスト225 & "\" myname = テキスト221 DoCmd.OpenReport "PDFにする", acViewReport, , Me.Filter DoCmd.OutputTo acOutputReport, "PDFにする", acFormatPDF, spath & myname & ".pdf" Next i End Sub これだとキー2のデータを2回作ってしまいました。 アドバイス頂けると大変助かります。
sazi

2021/07/30 01:24

> PDF作成は、そのテーブルをループで読み込み処理するようにする。 上記のイメージを追記しました。
sazi

2021/07/30 01:29 編集

処理するキーが固定ならテーブルにするまでも無く配列で十分ですけどね。
dokidoki_hamuo

2021/07/30 01:59

できましたー!!!! MoveNext をつけて一行づつフィルターかけて作成できました!! 初心者で難しかったけど面白かったです。ありがとうございます!!!
sazi

2021/07/30 02:58

MoveNex抜けてましたね。追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問