打印整个PDF文件列表

时间:2015-03-06 16:16:24

标签: ms-access

我正在创建一个包含许多化学品和数据库的数据库。关联的.pdf文件及其信息。

每种化学品都有一个唯一的ID,并且在同一行中有一个指向网络上.pdf文件的链接。

此外,每种化学品都有一个分配给它的位置。

我的目标是能够在每个位置打印与化学品相关的所有.pdf。

例如:

ID          Chemical          Location         PDF-link
1           Acetone           Lab-A            A:/folder/1.pdf
2           Fire              Lab-A            A:/folder/2.pdf
1           Acetone           Lab-B            A:/folder/1.pdf
3           Sponge            Lab-B            A:/folder/3.pdf
4           Candy             Lab-B            A:/folder/4.pdf

如果我指定Lab-A,我希望它能同时打印PDF:1.pdf,2.pdf。

如果我指定Lab-B,我希望它能打印相应的.pdf文件。

当然我也希望能够打印所有这些,但我想如果我弄清楚如何做到这一点,我可以设法做到这一点。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

看看这个:http://www.jpsoftwaretech.com/open-or-print-files-in-vba/

我已经通过在表单上放置一个命令按钮来成功使用它,例如:

在一个模块中,我把它放在:

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
 (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
  ByVal lpParameters As String, ByVal lpDirectory As String, _
  ByVal nShowCmd As Long) As Long

我的一个命令按钮的OnClick事件是:

PathName1 = "Full path.pdf"
PathName2 = "Full path.rtf"

ExecuteFile PathName1, printfile
ExecuteFile PathName2, printfile

您需要设置Select CaseIf Then Else语句来打印您真正想要的内容。

答案 1 :(得分:2)

执行此操作的代码如下所示:

Sub PrintMyPdf()

  Dim rst     As DAO.Recordset
  Dim strSQL  As String

  strSQL = "select * from tblChem where Location = '" & Me.txtLocation & "'"

  Set rst = CurrentDb.OpenRecordset(strSQL)
  Do While rst.EOF = -False
     Call PrintOnePdf(rst![PDF-link])
     rst.MoveNext
  Loop
  rst.Close

End Sub

Sub PrintOnePdf(strF As String)

  CreateObject("Shell.Application").Namespace(0).ParseName(strF).InvokeVerb ("Print")

End Sub

上面的代码假设你在txtLocation的形式上有一个文本框,然后上面的代码可以放在按钮点击后面(或者只需点击按钮点击上面的代码即可。

上述代码假设您有某种类型的PDF阅读器可以进行打印。