レポートをPDFに変換する方法

このQ&Aのポイント
  • 現在、ボタンをクリックするとメールが起動しレポートが添付されるようになっています。
  • アドビアクロバット8のPDFに変換して添付させたいのですが上手くいきません。
  • Access2003だとPDFに自動で変換されないのでしょうか?どのように設定したら良いのか教えてください。
回答を見る
  • ベストアンサー

レポートをpdfに変換する方法

現在、ボタンをクリックするとメールが起動しレポートが添付されるようになっています。 アドビアクロバット8のPDFに変換して添付させたいのですが上手くいきません。 Access2003だとPDFに自動で変換されないのでしょうか? どのように設定したら良いのか教えてください。 宜しくお願い致します。 Private Sub メール送信_Click() On Error Resume Next DoCmd.SendObject ObjectType:=acSendReport, _ ObjectName:=conReportName, _ OutputFormat:=acFormatPDF, _ To:=Me.メールアドレス, _ cc:=Me.メールアドレス1, _ Subject:="研修受講履歴", _ MessageText:="研修受講履歴を添付しましたのでよろしくお願いします." 'PDFやXLS添付ファイルの形式を指定する End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

Access2003のこの手のトラブルは下記がよくあるのですが。 http://support.microsoft.com/kb/867666/ja 全角文字のユーザ名でログインしたりしていませんか。 もしそうならば、以下の要領で設定を変えてみてうまくいくか確認 してみてください。 http://support.microsoft.com/default.aspx?scid=kb;ja;882563

yukirin5_2006
質問者

お礼

piroin654様 ありがとうございました。 無事に設定が出来ました。 自分一人ではとても完成まで辿り着けませんでした。 心から感謝しています。 また機会がございましたらご指導頂けたら幸いです。 ありがとうございました。そして今後とも宜しくお願い致します。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

以前の質問で回答が途中だったので追加します。 Access2003ではOutputFormat:=acFormatPDF は使用できません。そこでまずレポートを PDF化することから始めます。 (1) 以前の質問の中で回答した以下で取得したファイル http://www.lebans.com/reporttopdf.htm の中に、「StrStorage.dll」と「dynapdf.dll」があります。 これをファイルと同じフォルダに入れるか、Windowsの System32にコピーしてください。 (2) A2000SnapshotToPDFver785.mdbの標準モジュールの 「modReportToPDF」という名前のモジュールの中身を 全てコピーし、使用するファイルの標準モジュールに 貼り付けてください。 (3) フォームにコマンドボタンを貼り付け、以下のコードを 貼り付けてください。 Private Sub コマンド0_Click() Dim blRet As Boolean blRet = ConvertReportToPDF( _ RptName:="レポート名" _ , OutputPDFname:=CurrentProject.path & "\出力ファイル名.pdf" _ , ShowSaveFileDialog:=False _ , StartPDFViewer:=True _ , PasswordOwner:="" _ , PasswordOpen:="" _ , PDFNoFontEmbedding:=0) End Sub レポート名、出力ファイル名は実際に合わせて設定 してみてください。レポート名、出力ファイル名は 同じでもいいのではと思いますが、個別ファイルに なる場合は出力ファイル名を変更するようになります。 これでファイルと同じフォルダにPDFファイルが 作成されます。 まずこれを確かめてみてください。

yukirin5_2006
質問者

お礼

piroin654様 ご教授ありがとうございます。 数台のパソコンで試してみました。 Windows7のAccess2010だと動きました。 XPのAccess2003だとボタンをクリックすると 「ディスクの空きが不足しているため、レポートのスナップショットは作成できません。」と エラーメッセージがでます。 ディスクの空きは2.76GBとあります。レポートの件数は2件です。 それでも空きが足らないのでしょうか? 何かほかに良い方法があったら宜しくお願い致します。

関連するQ&A

  • Access2003のフォームでボタンをクリックすると特定のレポートだ

    Access2003のフォームでボタンをクリックすると特定のレポートだけをメールの添付ファイルとして送信したいです。 よろしくご教授ください。<(_ _)> 研修の受付フォームに送信ボタンを作りました。 ボタンをクリックするとメールソフトが起動されPDF添付ファイルとして添付されるのですが フォームと同じ社員番号だけ添付したいのです。 状況 テーブル T_社員マスター T_講座マスター T_研修受付リスト クエリ  Q_研修受付 フォーム F_研修受付入力(クエリを基に作りました。) レポート R_社員ごと受講リスト(社員番号ごとに研修受講履歴のレポートを作りました。) 作ったプログラムです。(小生プログラムの知識がありません。これはネットからサンプルを見ながら 作ってみました。おかしな所がございましたらご教授くださいませ) Option Compare Database Option Explicit '”R_社員ごと受講リスト”の所にはレポートの名前を書く Private Const conReportName = "R_社員ごと受講リスト" ----------------------------------------------------------------- Private Sub メール送信_Click() On Error Resume Next DoCmd.SendObject ObjectType:=acSendReport, _ ObjectName:=conReportName, _ OutputFormat:=acFormatPDF, _ To:=Me.メールアドレス, _ cc:=Me.メールアドレス1, _ Subject:="研修受講履歴", _ MessageText:="研修受講履歴を添付しましたのでよろしくお願いします." 'PDFやXLS添付ファイルの形式を指定する End Sub ----------------------------------------------------------------- Private Sub report_open(cancel As Integer) If IsLoaded("F_研修受付入力") Then Forms("F_研修受付入力").SetFilter Me End Sub ----------------------------------------------------------------- Public Sub SetFilter(rpt As Report) With rpt .Filter = "T_社員マスター.社員番号 =" & 社員番号 .FilterOn = True End With End Sub

  • mdbをメールに添付したいのですが・・・

    こんにちは メールにmdbを添付したいのですが、下記の方法ですとTxt・Xls・html・rtfでの 添付しか無いので、mdbをそのまま添付出来る方法を教えて頂きたいのですが わかる方いらしゃいましたらお願いします。 「補足」 ・容量が小さいmdbです。 ・Txt形式にすると空白が入るので使いたくありません。 Private Sub cmdMail_Click() On Error Resume Next DoCmd.SendObject objectType:=acSendTable, _ objectname:="T_Mail", _ outputformat:=acFormatTXT, _ to:=Me.メールアドレス, _ subject:="お疲れ様です。", _ messagetext:="???.mdbを添付致しました。後処理願います。" End sub

  • Access2007レポート特定レコードのPdf化

    Access2007を使用して台帳管理を行っています。 その際にレポートをPdf化して電子保存を行っていますが、いちいちメニューからレコード指定しでファイル出力するのが煩雑なのでVBAを勉強して自動化しようと思っています。 実装したい機能はフォーム上に配置されたボタンを押したら、そのIDのレポート(PDFファイル)が指定のフォルダに保存されるものです。 初心者なりにいろいろ調べて下記のコードに行きついたのですがうまくID選択されません(全レコード保存される)。 ご教授お願いします。 Sub Pdf作成() DoCmd.OpenReport "レポート名", acViewPreview, , "ID=" & Me!ID DoCmd.OutputTo acOutputReport, "レポート名", acFormatPDF, "保存path&ファイル名.pdf" End Sub

  • ACCESSレポートをPDFに出力したい

    ACCESSでレポートを作成して、下記のVBAで管理番号(ID)別にPDFファイルで保存したいと思っています。保存名はIDにしたいと思っています。 管理番号ごとに出力する部分のコードが分からずに困っています。どなたかご教授頂けないでしょうか?よろしくお願いします。 Private Sub コマンド9_Click() Const TBL_NAME = "T_住所録" Const RPT_NAME = "R_住所録" Const PDF_PATH = "C:\Users\TEST\" Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset rs.Open "SELECT DISTINCT ID FROM T_住所録", CurrentProject.Connection, adOpenStatic, adLockReadOnly Do Until rs.EOF pdfName = rs!ID DoCmd.OpenReport RPT_NAME, acViewPreview, , "ID = '" & rs("ID") & "'" DoCmd.OutputTo acOutputReport, RPT_NAME, acFormatPDF, PDF_PATH & pdfName & ".pdf" DoCmd.Close rs.MoveNext Loop End Sub 実行すると「出力データを指定したファイルに保存できません」とメッセージが出ます。

  • 特定のレポートだけをメールの添付ファイルとして送信

    Access2003のフォームでボタンをクリックすると特定のレポートだけをメールの添付ファイルとして送信したいです。 以前、ご教授頂き、別のファイルでは使えるのですが、新たに作ったファイルで上手くいきません。 是非、ご指導お願いいたします。 内容:社員がテストを受けた結果をメールで添付して送りたいです。 現状: テーブル T_社員マスター T_受験結果リスト クエリ  Q_受験結果 フォーム F_社員情報(クエリを基に作りました。) レポート R結果情報(社員番号ごとに受験結果のレポートを作りました。) report_open(cancel As Integer)のプログラムを記述するとメールソフトが起動しません。 --------------------------------------------------------------- Option Compare Database Option Explicit Private Const conReportName = "R結果情報" --------------------------------------------------------------- Private Sub メール送信_Click() On Error Resume Next DoCmd.SendObject ObjectType:=acSendReport, _ ObjectName:=conReportName, _ OutputFormat:=acFormatPDF, _ To:=Me.eメールアドレス, _ cc:=Me., _ Subject:="結果を添付します", _ MessageText:= End Sub --------------------------------------------------------------- Public Sub SetFilter(rpt As Report) With rpt .Filter = "[受験番号]=" & Forms!F_社員情報!受験番号 .FilterOn = True End With End Sub --------------------------------------------------------------- ここまでの記述だと、フォーム上にある【メール送信】ボタンをクリックすると メールが起動されアドレスや件名が入ります。 問題は、添付ファイルが社員全員のものが添付されてしまします。 そこで、フォーム上に表示されている受験番号の人だけをレポートから抽出して添付したいです。 下記プログラムを記述しました。 --------------------------------------------------------------- Option Compare Database Option Explicit --------------------------------------------------------------- Private Sub report_open(cancel As Integer) If CurrentProject.AllForms("F_社員情報").IsLoaded Then SetFilter Reports!R結果情報 End If End Sub --------------------------------------------------------------- Private Function IsLoaded(strName As String) _ As Boolean IsLoaded = (SysCmd(acSysCmdGetObjectState, acForm, strName) <> 0) End Function --------------------------------------------------------------- Private Sub report_open(cancel As Integer)を記述するとメールが起動されなくなります。 フォームを開いた状態で、レポートをダブルクリックすると、 「コンパイルエラー、subまたはfanctionが定義されていません。」と表示されます。 どこを修正したらよいのでしょうか? 小生プログラムの知識が全くありません。これも、サンプルを見ながら作りました。 宜しくご教授くださいますようお願いいたします。

  • PDF→Excelへの変換は可能?

    「いきなりPDF」を使って『Excel→PDFファイル』へと変換します。 ↓ そのPDFファイルをメールに添付して友人へ送ります。 ↓ その後友人は何かしらの方法を用いて、PDFファイルをExcelへ戻すことはできるのでしょうか?? ご存知の方いましたら教えてください!!

  • PDF変換できるソフト

    HPビルダーで会社案内を作りました。 それをメールに添付して送りたいのですが、 やり方が全くわからなかったところ、 「PDF変換すれば画像入りでも簡単に送れる」 と聞きました。 PDFファイルは閲覧したことはあるのですが、 自分で作ったことはありません。 どうやって作ればよいのですか? どなたか教えて頂けませんか? どうぞよろしくお願い致します。

  • 手書き履歴書をPDFで提出する方法

    写真付の手書き履歴書をPDFにしてメールするように言われましたが、どのようにしたら良いか手順を お教へ下さい。 単純に考えると通常の履歴書に手書きで記入しこれに写真を添付した上で、書類をスキャナーして、その画像をPDFに変換すれば出来ると思いますが、そのソフトなどご指導お願いいたします。 OSはXPです。

  • PDFファイルを添付して下さいと言われました

    お客さんにとあるHPのアドレスをコピーペーストしてメールしました。 そうするとPDFじゃないと閲覧できないと言われました。 PDFを添付してくれと、、、 どうやって変換すればよいのでしょうか?

  • Access PDF作成-日付フォルダー作成保存

    使用MS Access 2010 たびたびの質問で恐縮です。 レポートをPDFで一件づつ自動作成-任意のファイル名で自動保存のイベントは、 質問番号:6530399 のご回答で上手くいったのですが、試行してみるとPDFファイルが大量にできるので、「日付名フォルダー」を毎日生成して、そこに自動保存したくなりました。そこで新しい質問として新たにお尋ねします。 「受注一覧」という表形式フォームに日々の受注客百件程度が表示されています。レコードのフィールドに[ID]という受注IDコードがあります。 受注確認メールへPDF添付ファイル作成用の「受注確認PDF」というレポートがあります。 レコードソースのパラメータクエリで、受注一覧フォームの受注IDを参照しています。 それを使って"受注確認書(受注ID:" & [ID] & ")"というファイル名で"C:\PDF"フォルダーに"yyyymmdd"というフォルダーを自動で作成し、そこにPDFを一件ごと(1ページ)別名で保存するボタンを作成したいのです。 "yyyymmdd"のフォルダーがすでにある場合はそこに保存、無い場合は自動生成することにしたいと思っています。 Private Sub コマンド1_Click() Dim path As String path = "c\受注確認PDF" & Format(Date, "yyyymmdd") MkDir path On Error GoTo ERR1 Exit Sub ERR1: DoCmd.GoToRecord acActiveDataObject, , acFirst Do If Me.Recordset.RecordCount = Me.CurrentRecord Then MsgBox "最終レコードまで出力しました。" Exit Sub End If DoCmd.OutputTo acOutputReport, "受注確認PDF", acFormatPDF, "c\受注確認PDF" & Format(Now(), "yyyymmdd") & "\" & "受注確認書(受注ID " & Me.ID & ").pdf" DoCmd.GoToRecord acActiveDataObject, , acNext Loop End Sub DoCmd.GoToRecord から後の部分はhatena1989 様のご回答で上手くいったのですが、前半部分の日付名フォルダー作成のところが上手くいきません。 MkDir path →実行時エラー75 パス名が無効です。 となってしまいます。 また、エラートラップというのでしょうか?その書き方も自信ありません。 ご教授いただきたく、お願いします。