DoCmd.OutputTo 无法在 MS Access 2010 中运行 VBA
DoCmd.OutputTo not working in MS Access 2010 VBA
我在 MS Access 2010 中使用 VBA 时遇到了一些问题。
我的代码试图为每个唯一的结算编号创建一个新报告。然后我将该报告导出到一个以今天的日期创建的文件夹中,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 替换为硬编码的文件路径和文件名,宏会起作用,所以我认为这就是我的错误所在,但我无法使其正常工作。
有什么想法吗?
谢谢!
编辑:
具体错误如下:
Run-time error '2501': The OutputTo action was canceled.
您需要先检查以确保该文件夹存在,如果不存在则创建它。像这样:
If Dir(mypath, vbDirectory) = "" Then MkDir mypath
我在 MS Access 2010 中使用 VBA 时遇到了一些问题。 我的代码试图为每个唯一的结算编号创建一个新报告。然后我将该报告导出到一个以今天的日期创建的文件夹中,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 替换为硬编码的文件路径和文件名,宏会起作用,所以我认为这就是我的错误所在,但我无法使其正常工作。
有什么想法吗?
谢谢!
编辑:
具体错误如下:
Run-time error '2501': The OutputTo action was canceled.
您需要先检查以确保该文件夹存在,如果不存在则创建它。像这样:
If Dir(mypath, vbDirectory) = "" Then MkDir mypath