DoCmd.OutputTo无法在MS Access 2010 VBA中工作

时间:2018-01-23 15:17:19

标签: vba ms-access access-vba ms-access-2010

我在MS Access 2010中遇到了一些VBA问题。 我的代码正在尝试为每个唯一的和解号码I创建一份新报告,然后将该报告导出到今天创建的文件夹中,并为PDF文件分配一个名称。结算号码

在下面的代码中,我在DoCmd.OutputTo方法的行中不断出现错误。

Public Function exporttopdf()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim MyFileName As String
Dim mypath As String
Dim temp As String

mypath = "S:\Settlement Reports\" & Format(Date, "mm-dd-yyyy") & "\"

Set db = CurrentDb()

Set rs = CurrentDb.OpenRecordset("SELECT dbs_eff_date, batch_id_r1, jrnl_name, ledger, entity_id_s1, account_s2, intercompany_s6, trans_amt, dbs_description, icb_name, [Settlement No] FROM [Today's Settled Jrnls]", dbOpenDynaset)

Do While Not rs.EOF

temp = rs("[Settlement No]")
MyFileName = rs("[Settlement No]") & ".PDF"

DoCmd.OpenReport "Settlement Report", acViewReport, , "[Settlement No]='" & temp & "'"
DoCmd.OutputTo acOutputReport, "", acFormatPDF, mypath & MyFileName
DoCmd.Close acReport, "Settlement Report"
rs.MoveNext

Loop

Set rs = Nothing
Set db = Nothing

End Function

如果我更换mypath& MyFileName具有硬编码的文件路径和文件名,宏可以工作,所以我认为我的错误在哪里,但我无法正常工作。

有什么想法吗?

谢谢!

编辑:

以下是具体错误:

  

运行时错误' 2501':OutputTo操作已取消。

1 个答案:

答案 0 :(得分:3)

您需要检查以确保该文件夹首先存在,如果该文件夹不存在则创建该文件夹。像这样:

If Dir(mypath, vbDirectory) = "" Then MkDir mypath