○環境
Access2007or2010
Windows7Pro

Accessで、帳票をPDFファイルにして出力することを考えています。

VBAのコードで

DoCmd.OutputTo acOutputReport, (オブジェクト名), acFormatPDF, (ファイルのパス)

と書けば出力できることを確認しました。

さらに、10ページあるレポートならば、10のPDFファイルに分割して出力したいと考えています。
が、そこまで方法を書いたページが見つかりません。

別ソフトと組み合わせてもいいので、何か方法をご存じの方はお教えください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

追伸


もし無ければレポートの適当なところに、不可視でも構わないので
テキストボックスを1個配置して、コントロールソースに
=[Pages]
と設定して置いてください。
    • good
    • 0
この回答へのお礼

詳細なアドバイスありがとうございます。
結局、これとは違う方法で解決することにしました。

上記レポートはデータベースをselectした結果を出力するものなのですが、
そこに繰り返し処理を加えてDoCmd.OutputToをページ数ぶん繰り返すことにしました。

今回は使いませんでしたが、nicotinismさんの回答が他の方の助けになればと思います。

お礼日時:2011/04/25 14:30

Adobe の Acrobat はお持ちでは無いでしょうか。


これを購入して・・
とてもお高いので。。私は下記の PDFCreator を使わせてもらっています。
http://sourceforge.jp/projects/pdfcreator/

簡単な説明は上記リンクをご覧いただくとして
オプションの AutoSave にチェックを入れ Filename には <Title> として
おいて置けば自動的に保存されます。
※ただし日本語(全角文字)は使えません
なので別名で保存した後で、ファイル名を書き戻す必要が無いかも?
(詳しくは最後の方に)

Sub pdfPrint(rptName As String)
'1ページずつPDFで印刷
'rptNameにはレポート名(※PDFCreatorで出力するように設定してあること)
  Dim rpt As Report
  Dim printCount As Integer
  Dim i As Integer

  DoCmd.OpenReport rptName, acViewPreview, windowmode:=acIcon
  Set rpt = Reports(rptName)
  
  If MsgBox(rpt.Printer.DeviceName & " で印刷します", vbOKCancel) = vbCancel Then
    DoCmd.Close acReport, rpt.Name, acSaveNo
    Set rpt = Nothing
    Exit Sub
  End If
  
  printCount = rpt.Pages
  
  Do Until i > printCount
    i = i + 1
    rpt.Caption = rpt.Name & Format(i, "-000")
    DoCmd.PrintOut acPages, i, i
  Loop
  
  DoCmd.Close acReport, rpt.Name, acSaveNo
  Set rpt = Nothing
  MsgBox rptName & " の印刷終了"

End Sub

なお、YU-TANG さんが詳しい解説をされています。
レポートを PDF 出力する方法~ PDFCreator 編~
http://www.f3.dion.ne.jp/~element/msaccess/AcTip …
また、日本語化を行った有志の方を紹介されています。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPDFファイルの編集ソフト(フリーソフトにて)

メールの添付ファイルでもらったPDFファイルを、
編集出来る「フリーソフト」はないでしょうか?

・申込書のPDFダウンロードなどで、申込書にキーボードから入力して、
添付ファイルで返信したい。
・添付PDFファイルの自分の持っている画像を貼り付けて編集したい

という意図です。

ちなみにフリーソフトの
・アドビー アクロバット リーダー
(PDFファイルを見ることだけできるもの)
・クセロPDF
(PDFファイルを作成だけ出来るもの)
しかありません

Aベストアンサー

PDFのメリットは、以下のようなものです。

(1)OS等の環境が違っても、作成した通りに見ることが出来る。
(2)軽量
(3)改ざん防止

更新を容易に許せば、PDFにするメリットが部分的に失われます。

Acrobatでは、記入欄にデータを入力できるようにPDFを作成する機能がありますが、これもPDFを更新するのではなく、データを入力した状態で印刷できることを目的としています。

ちなみにAdobe Readerは、見るだけでなく、PDF中のテキストや画像をコピーすることもできます。

添付ファイルに直接書き込んで返信が必要な電子ファイルなら、ワードやエクセルで作成してもらえばいいのではないでしょうか?

QAccess ○or△文の書き方

2003です。

月のコントロールを作りました。
Me.月 = Year(Now)
としています。

そこから、10月か11月か12月と、その他を分けたいです。

If Me.月 = 10 Or 11 Or 12 Then
1番

else

2番

end if


としてみました。
実行してみたら、今4月なので、
2番を通ってくれると思いきや、
何故か1番を通っていました。

If Me.月 = 10 Then
としてみたら、ちゃんと2番を通りました。

Case 10 to 12
  1番
Case else
  2番
とした場合も、2番を通ってくれました。
現在、この方法で、応急処置しています。


orを入れると1番を通ってしまうように見えるのですが、
何故なのでしょうか。

Aベストアンサー

記述ミスった
【正】
'b = 4のとき
b = 4

'ちなみにすべてに=を付ける場合

If (((b = 10) Or (b= 11)) Or (B=12)) Then
Msgbox("真")
Else

' (( 0 Or 0 ) Or 0)
' = (0 Or 0 )
'= 0
'= false

Msgbox("偽")
End If

QWebから保存したPDFファイルを加工編集するフリーソフト。

Webから保存したPDFファイルを加工編集するフリーソフトを探しているのですが、文書を部分空欄に加工編集出来るものはないでしょうか?

Aベストアンサー

「部分空欄」が白ベタで塗りつぶす、でいいのならPDF-XChange Viewerで可能です。
テキストボックスツールで背景色を白(または任意の色)にし、枠線を白(または任意の色)にし、テキストに何も書き足さなければ部分空白になるでしょう。
Viewerですが、加工して保存もできます。文面固定ですがスタンプも押せます。

参考URL:http://www.forest.impress.co.jp/lib/offc/document/pdf/pdfxchange.html

QAccess2007 フォームでのOR検索

Access歴は2カ月程度です。

クエリから作成したフォームの中でのOR検索を行いたいのですが

フィールド名・・・工具名,使用番号
検索に使用する非連結txtbox・・・工具名条件,使用条件

となっており、

Private Sub 検索_Click()

If [工具名条件] <> "" Then 検索文字 = 検索文字 & " and 工具名 like '*" & [工具名条件] & "*'"
If [使用条件] <> "" Then 検索文字 = 検索文字 & " and 使用番号 like '*" & [使用条件] & "*'"

If 検索文字 = "" Then
Me.FilterOn = False

Else
Me.Filter = Mid(検索文字, 6, 2000)
Me.FilterOn = True

DoCmd.Requery

End If
End Sub

となっており、工具名と使用番号のAND検索は出来ているのですが、使用番号が1~6あり、
OR検索を使用して2つを検索条件にし、それぞれ該当している結果を表示させたいのですが。。。

工具名はカタカナや漢字のみです。
使用番号は「1,2,3」等と入力してあります。

クエリの抽出条件は無記入です。

どうぞ、よろしくお願いします。

Access歴は2カ月程度です。

クエリから作成したフォームの中でのOR検索を行いたいのですが

フィールド名・・・工具名,使用番号
検索に使用する非連結txtbox・・・工具名条件,使用条件

となっており、

Private Sub 検索_Click()

If [工具名条件] <> "" Then 検索文字 = 検索文字 & " and 工具名 like '*" & [工具名条件] & "*'"
If [使用条件] <> "" Then 検索文字 = 検索文字 & " and 使用番号 like '*" & [使用条件] & "*'"

If 検索文字 = "" Then
Me.FilterOn = False

Else
Me.Filter = Mid(検索...続きを読む

Aベストアンサー

#1です

> 使用条件として1~6の数字の他に、すべてのパターンで使う条件としてALLがありました。
> 使用条件のデータ型はテキスト型です。

使用条件には 1 ~ 6 の数字と、ALL の文字が混在しているという事でしょうか。
また、使用番号を指定するのに、
使用条件1 / 使用条件2 という感じにテキストボックスを増やして、この所が OR
工具名条件 と 使用条件 は、あくまで AND

で良いでしょうか。

あくまで、以下例ですが、使用条件1 ~ 使用条件4 を画面上に作っていたとします。
で、どこかに ALL の入力があれば抽出条件を設定しない・・・・感じです

Private Sub 検索_Click()
  Dim sWhere As String
  Dim sW As String
  Dim i As Long

  sWhere = ""
  If (Not IsNull(Me.工具名条件)) Then
    sWhere = sWhere & " AND 工具名 Like '*" & Me.工具名条件 & "*'"
  End If

  sW = ""
  For i = 1 To 4 ' 使用条件1 ~ 4 ★
    If (Not IsNull(Me("使用条件" & i))) Then
      If (Me("使用条件" & i) = "ALL") Then
        sW = ""
        Exit For
      Else
        sW = sW & " OR 使用番号 Like '*" & Me("使用条件" & i) & "*'"
      End If
    End If
  Next
  If (Len(sW) > 0) Then
    sWhere = sWhere & " AND (" & Mid(sW, 5) & ")"
  End If

  If (Len(sWhere) = 0) Then
    Me.FilterOn = False
    Me.Filter = ""
  Else
    Me.Filter = Mid(sWhere, 6)
    Me.FilterOn = True
  End If
End Sub



なお、聞き漏れていたのですが、使用番号 は数値型でしたでしょうか。
(#1では、使用番号 で書いたつもりが、使用条件になってました)
使用番号が数値型であれば、部分的に以下に変更して大丈夫かと・・・・

> 使用番号は「1,2,3」等と入力してあります。
からするとテキスト型ですかね・・・・以下は不要かも

  sW = ""
  For i = 1 To 4 ' 使用条件1 ~ 4 ★
    If (Not IsNull(Me("使用条件" & i))) Then
      If (Me("使用条件" & i) = "ALL") Then
        sW = ""
        Exit For
      Else
        sW = sW & "," & Me("使用条件" & i)
      End If
    End If
  Next
  If (Len(sW) > 0) Then
    sWhere = sWhere & " AND 使用番号 IN (" & Mid(sW, 2) & ")"
  End If

※ ここまでの記述では、使用条件1 ~ 4 への入力値のチェックは行っていないので
各テキストボックスでの入力規則とか、更新前処理でチェックしてください。

※ 使用条件で用意したテキストボックスの個数が2つなら、
使用条件1 / 使用条件2 名にして、上記 ★ 部分の 4 を 2 に変更すれば・・・・


※※ 上記、未検証ですので動かなかったらごめんなさい。
また、考え違いをしているところがあるかも・・・・

#1です

> 使用条件として1~6の数字の他に、すべてのパターンで使う条件としてALLがありました。
> 使用条件のデータ型はテキスト型です。

使用条件には 1 ~ 6 の数字と、ALL の文字が混在しているという事でしょうか。
また、使用番号を指定するのに、
使用条件1 / 使用条件2 という感じにテキストボックスを増やして、この所が OR
工具名条件 と 使用条件 は、あくまで AND

で良いでしょうか。

あくまで、以下例ですが、使用条件1 ~ 使用条件4 を画面上に作っていたとします。
で、どこかに ALL の入...続きを読む

QPDF のデータを編集できるフリーソフトはある?

本質問に御対応頂き、ありがとうございます。
PDF のデータの中で、ある部分を消したり、トリミングしたりと編集をする方法がありますか?(フリーソフト とかで)
PDF PROFESSIONAL というものも、聞いたことがあるのですが・・・。
宜しく、御教示、お願い致します。

Aベストアンサー

基本的にPDFとはadobe社が作ったフォーマットなので
ライセンスが絡むのと技術的にお金や時間が掛かるので
フリーは無いです。

フリーウエアが多い、このご時世ですけどPDFに限ってないのはadobe社がリリースしている製品の品質が高いことと基本的にこの手の製品は業務で使う人が多いからです。

http://www.forest.impress.co.jp/lib/offc/document/pdf/pdfxchange.html
http://freesoft-100.com/review/pdf-explorer.php

>PDF PROFESSIONAL


いきなりPDF-Professional?
adobe pdf professional?

Qエクセルマクロ PDF出力、CSV出力

エクセルマクロの外部ファイル出力の件で伺いたい事が御座います。
現在
元sheet、発注書sheet、CSV用sheetという3つを、同じブックに御座います。
元sheetに2つのボタン(図挿入)で行い、それぞれに以下のマクロを1つずつ設定しております。
------------------------------------------------------------------------------------------------------------
1.PDF保存
Sub PDF保存()
Dim fName As String
'保存ファイル名及び保存場所の設定
fName = Application.GetSaveAsFilename(, "PDFファイル,*.pdf")
'保存操作
Sheets("発注書").ExportAsFixedFormat Type:=xlTypePDF, Filename:=fName
End Sub

2.CSV保存
Private Sub CSV保存()
Dim fn
'ファイル名を整える
fn = Format(Now(), "yyyymmdd_hhmm") & "_ファイル.csv"
'保存先を選択させる
fn = Application.GetSaveAsFilename(fn, "CSVファイル,*.csv", 1, "保存先の指定")
'キャンセルなら中止
If fn = "False" Then Exit Sub
'Sheet3をコピー
Worksheets("CSV用").Copy
'CSV形式で保存
ActiveWorkbook.SaveAs Filename:=fn, FileFormat:=xlCSV
'保存せずに閉じる
ActiveWorkbook.Close SaveChanges:=False
End Sub
------------------------------------------------------------------------------------------------------------
→上記2つの時、出力ファイル名を以下の様に出力できるように変えたいです。
・PDF保存
1.出力先をデスクトップのPDFフォルダに
2.出力ファイル名を、「元sheetのA1+発注書sheetのB1」に設定

・CSV保存
1.出力先をデスクトップのCSVフォルダに
2.出力ファイル名を「元sheetのA1+発注書sheetのB1+CSV用のB1」に設定
以上です。
簡易的なマクロを友人に教えてもらいましたが、上記を聞いたら分からないとの事でしたので、こちらへ質問させて頂きました。
ご教授下さい。
よろしくお願いいたします。

エクセルマクロの外部ファイル出力の件で伺いたい事が御座います。
現在
元sheet、発注書sheet、CSV用sheetという3つを、同じブックに御座います。
元sheetに2つのボタン(図挿入)で行い、それぞれに以下のマクロを1つずつ設定しております。
------------------------------------------------------------------------------------------------------------
1.PDF保存
Sub PDF保存()
Dim fName As String
'保存ファイル名及び保存場所の設定
fName = Application.GetSaveAsFilename(, "PDFファイル,*...続きを読む

Aベストアンサー

こんばんは。
マクロは良く書けているようでしたので、そのまま加筆するだけで利用させていただきました。これだけ書ける人なら、出来なくもないと思います。一応、コードは一度通しておりますが、細かい部分でバグがあるかもしれませんから、十分に検査してください。

'//

Sub PDF保存()
Dim fName As String
Dim a As String, b As String

a = Worksheets("元Sheet").Range("A1").Value & ""
b = Worksheets("発注書").Range("B1").Value & ""
If Len(a) > 0 And Len(b) > 0 Then
   fName = a & b
   If MsgBox(fName & ".pdf のファイル名でよろしいですか?", vbOKCancel) = vbCancel Then
      Exit Sub
   Else
'保存操作
   '保存ファイル名及び保存場所の設定
   fName = Application.GetSaveAsFilename(fName, "PDFファイル,*.pdf")
   Sheets("発注書").ExportAsFixedFormat Type:=xlTypePDF, Filename:=fName
   End If
Else
   MsgBox "ファイル名の要素が不足しています。", vbCritical
End If
End Sub

Private Sub CSV保存()
Dim fn As String
Dim a As String, b As String, c As String
 With ThisWorkbook
 a = .Worksheets("元Sheet").Range("A1").Value & ""  '空の時も文字列にする
 b = .Worksheets("発注書").Range("B1").Value & ""
 c = .Worksheets("CSV用").Range("B1").Value & ""
 End With
'ファイル名を整える
'fn = Format(Now(), "yyyymmdd_hhmm") & "_ファイル.csv"
 If Len(a) > 0 And Len(b) > 0 And Len(c) > 0 Then
   fn = a & b & c
   If MsgBox(fn & ".csv のファイル名でよろしいですか?", vbOKCancel) = vbCancel Then
     Exit Sub
   Else
  '保存先を選択させる
   fn = Application.GetSaveAsFilename(fn, "CSVファイル,*.csv", 1, "保存先の指定")
     If fn = "False" Or fn = "" Then Exit Sub
   End If
 Else
    MsgBox "ファイル名の要素が不足しています。", vbCritical
    Exit Sub
 End If
'キャンセルなら中止
  'Sheet3をコピー
  Worksheets("CSV用").Copy
  'CSV形式で保存
  With ActiveWorkbook
     .SaveAs Filename:=fn, FileFormat:=xlCSV
  '保存せずに閉じる
     .Close SaveChanges:=False
  End With
End Sub

こんばんは。
マクロは良く書けているようでしたので、そのまま加筆するだけで利用させていただきました。これだけ書ける人なら、出来なくもないと思います。一応、コードは一度通しておりますが、細かい部分でバグがあるかもしれませんから、十分に検査してください。

'//

Sub PDF保存()
Dim fName As String
Dim a As String, b As String

a = Worksheets("元Sheet").Range("A1").Value & ""
b = Worksheets("発注書").Range("B1").Value & ""
If Len(a) > 0 And Len(b) > 0 Then
   fName = a & b
   If...続きを読む

QPDFの編集が出来るいいフリーソフトはありませんか

PDFの編集をしたいのですがいいフリーソフトをご存知ないでしょうか?
Win7で編集できるソフトを探しています。
窓の杜とかでいろいろ落としてみたのですが・・・いまく使えるものがありません。
やりたいこととしては複数ページあるPDFがあるのですが、間に不要ページが存在しているのでそのページを落として再度結合させてしまいたいのですが・・・
2,3のPDFの編集をするだけなのでAcrobatを購入するのも馬鹿らしいですし・・・
よろしくお願いします。
もしよかったら上記の編集の方法も補足頂けると幸いです。

Aベストアンサー

こんにちは

ページ単位の編集でよければ、pdf24でできた思いますよ。
freeなので試してみてください。

参考URL:http://en.pdf24.org/

QAccess2007でAccess2000のモジュールを動かす

いつもお世話になります。
Access2007でAccess2000のモジュールを動かすことができなくて困っています。
新しい職場のPCが全てAccess2007に変わってしまいました。
今までは、Access2000でした。そのとき作成したフォームモジュールがAccess2007で全く動作しなくなり困っています。
Access2007でAccess2000ファイルはそのまま読み込み、フォーム自体は表示されます。しかし、VBで作成したモジュールが全く動作しません。
自宅では、Access2000のままですので、Access2000をAccess2007のファイルに変換することなくAccess2000のフォームモジュールを動かす方法はあるのでしょうか。
よろしくお願いします。

Aベストアンサー

>そのとき作成したフォームモジュールがAccess2007で全く動作しなくなり困っています
どういうメッセージが表示されたのか、何も表示されずに動かないのかわかりませんが、最近Access2000->access2007を行いました。
私の場合は次の2点の修正で動きました。

まず、Ofiice2007系でのセキュリティの強化によって、信頼できる場所か信頼できる発行元の設定が必要です。
http://our-plaza.sakura.ne.jp/ac2007/ac2007.html

2007以前で使えたFileSearch関数が使えなくなった。
http://support.microsoft.com/kb/935402/ja

QPDF回転編集フリーソフト

PDF画像を回転保存できるフリーソフトを教えてください。

Aベストアンサー

下記にある、RotPDFや、PDF RotatePageでは如何でしょうか?

http://www.pdf-soft.com/freesoft/free07.html

Qaccessの検索について質問です。 access2010でSheet1のテーブルと検索す

accessの検索について質問です。





access2010でSheet1のテーブルと検索する為のフォーム1があります。
Sheet1には、日付と内容のフィールドがありフォーム1には、テキストボックス(テキスト0)とボタン(コマンド2)とリストボックス(リスト7)があります。
今は、内容の中の文章をあいまい検索で先頭の文字がヒットすればリストボックスに表示されるようになっていますがこれを部分一致検索で検索した文字が含まれいれば全てリストボックスに表示されるように変更したいと考えています。
下記のコードもインターネットを真似て作成したので私の知識では、変更できませんでした。

わかる方がいればご教授お願いします。

Option Compare Database
Option Explicit
Private myRecordset As Recordset
Private SQL As String

Private Sub Form_Load()
SQL = ""
End Sub

Private Sub コマンド2_Click()
ResultShow (1)
End Sub

Private Sub ResultShow(flag As Integer)
SQL = "select * from Sheet1 where 内容 LIKE" & "'" & テキスト0.Value & "*';"
Set myRecordset = CurrentDb.OpenRecordset(SQL)
リスト7.RowSourceType = "Table/Query"
リスト7.RowSource = SQL
myRecordset.Close
End Sub

accessの検索について質問です。





access2010でSheet1のテーブルと検索する為のフォーム1があります。
Sheet1には、日付と内容のフィールドがありフォーム1には、テキストボックス(テキスト0)とボタン(コマンド2)とリストボックス(リスト7)があります。
今は、内容の中の文章をあいまい検索で先頭の文字がヒットすればリストボックスに表示されるようになっていますがこれを部分一致検索で検索した文字が含まれいれば全てリストボックスに表示されるように変更したいと考えています。
下記のコードもインター...続きを読む

Aベストアンサー

SQL = "select * from Sheet1 where 内容 LIKE" & " '*" & テキスト0.Value & "*';"

でしょうか。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング