Option Explicit Private Sub Document_Open() 'ReadXML End Sub Sub ReadXMLAndProcess() 'reads an xml type file for different parameters; file must have the same name and path as the calling report Dim myRs As Object Dim myRpt As report Dim myDoc As Document Dim myErr As String Dim dlg As Object Dim exFileName As String Dim exFileName2 As String Dim xmlFileName As String Set myDoc = ActiveDocument Set myRpt = ActiveReport Set myRs = CreateObject("adodb.recordset") exFileName = "write dir" exFileName2 = "XML_dir" myErr = "BO - Reporting error: " 'Set dlg = CreateObject("MSComDlg.CommonDialog") Call AssignDefaultValue 'the filename for the xml config map xmlFileName = exFileName2 & "\" & Me.Name & ".xml" On Error Resume Next myRs.Open xmlFileName, "Provider=MSPersist" If Err.Number = -2147467259 Then Call MsgBox(myErr & "Please select a proper XML input file" & vbCrLf _ & " - " & Err.Description) Else Err.Clear On Error Resume Next With myRs Do While Not .EOF Err.Clear If Len(myRs.fields("field1")) > 0 And Len(myRs.fields("field2")) > 0 Then If Err.Number = 3265 Then Call MsgBox(myErr & "Please select a proper XML input file" & vbCrLf _ & " - " & Err.Description) Exit Do End If End If 'declare var here Variables.Item("field1").Value = .fields("field2") myDoc.Refresh myRpt.ExportAsPDF (exFileName & .fields("field1") & ".PDF") Debug.Print .fields("field1") & " - " & .fields("field2") .MoveNext If .EOF Then Exit Do End If Loop myRs.Close End With End If Set myRs = Nothing Set dlg = Nothing End Sub Sub AssignDefaultValue() Dim startdate As Date startdate = DateAdd("m", -13, Date) On Error Resume Next 'reset values if ok Variables.Item("BEGIN DATE").Value = Format(startdate, "MM-01-YYYY 0:00") Variables.Item("END DATE").Value = Format(Date, "MM-01-YYYY 0:00") End Sub XML-file: