我在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操作已取消。
答案 0 :(得分:3)
您需要检查以确保该文件夹首先存在,如果该文件夹不存在则创建该文件夹。像这样:
If Dir(mypath, vbDirectory) = "" Then MkDir mypath