2015-03-02 89 views
0

我对VBA还是比较新的。我一直在绞尽脑汁,看着每一个试图找到如何做到这一点的论坛。这是迄今为止我所得到的最接近的。 我有一张名为“街道”的表格,报告基于此,显示了每条街道的房屋数量。每条记录位于名为StreetPrintOuts的报告的单个页面上。我把街道分成不同的地区,而这些地区(MapNum)都有编号。我希望每个pdf都能显示该地区每条街道的所有街道记录。到目前为止,我有这样的:访问报告,每组打印pdf

Public Sub PDFGroup_Click() 
Const Folder = "C:\Users\Records\" 
Const Domain = "Streets" 
'Domain can be table name, query name, or sql statement that provides the values to loop 
Const LoopedField = "MapNum" 
Const ReportName = "StreetPrintOuts" 

Dim rs As DAO.Recordset 
Dim LoopedFieldValue As Long 
Dim FileName As String 
Dim FullPath As String 
Dim strWhere As String 
Set rs = CurrentDb.OpenRecordset(Domain) 

Do While Not rs.EOF 
LoopedFieldValue = rs.Fields(LoopedField) 
FileName = LoopedFieldValue & ".pdf" 
'The field may be a text field. It then must be surrounded in singlequotes. If so uncomment below 
'LoopedFieldValue = "'" & LoopedFieldValue & "'" 
FullPath = Folder & FileName 
strWhere = LoopedField & " = " & LoopedFieldValue 
Debug.Print FullPath 
Debug.Print strWhere 
DoCmd.OpenReport ReportName, acViewPreview, , strWhere 
DoCmd.OutputTo acOutputReport, ReportName, acFormatPDF, FullPath 
DoCmd.Close acReport, ReportName 
rs.MoveNext 
Loop 

End Sub 

它运行时,它都会经过

DoCmd.OpenReport ReportName, acViewPreview, , strWhere 

停止,错误代码运行时错误2501:OutputTo操作被取消

我在做什么错?

回答

0

此代码实际上工作。我留下了另一个变量,使其在报告中的其他地方出现。很明显,工作到深夜和失踪的事情。