Ok allora qui metto il codice che ho usato, prendendo molti spunti quà e là, ho cercato di adattare il tutto.
Stampa Unione ed Esporta1x1, ogni record un pdf.
Il "Campo1" ha come nome -> Aggiornato
Sub Esporta1x1()
Application.ScreenUpdating = False
maindoc = ActiveDocument.Name
ChangeFileOpenDirectory _
"\\RisorsaCondivisaAccessibile\CartellaDatabase\"
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
hmrecords = ActiveDocument.MailMerge.DataSource.ActiveRecord
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
For i = 1 To hmrecords + 1
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = i
.LastRecord = i
.ActiveRecord = i
'Utilizzo alcuni campi del file sorgente per impostare il nome del file pdf
docName = .DataFields("Campo_3").Value & " " & .DataFields("Campo_4").Value & ".pdf"
TheRow = .DataFields("Campo_2").Value
Aggiornato = .DataFields("Aggiornato").Value
'se il record è flaggato salta l'esportazione
'If Aggiornato = 1 Then GoTo 100
End With
.Execute Pause:=False
Application.ScreenUpdating = False
End With
'crea il PDF
ActiveDocument.ExportAsFixedFormat OutputFileName:=docName, _
ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateHeadingBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
ActiveWindow.Close SaveChanges:=wdDoNotSaveChanges
'vai alla sub che flagga a "vero" il record appena processato
UpdateAggiornato (TheRow)
'se la riga non va esportata salta qui <-- questo veniva usato precedentemente quando importavo tutti i record senza filtrarli per il campo Aggiornato
'100
Next i
Application.ScreenUpdating = True
End Sub
Questo invece è il codice che ho utilizzato per andare a Flaggare il campo Aggiornato sul file di origine dati
Sub UpdateAggiornato(TheRow As Integer)
'creo la connessione al DB Access
Dim Con As String
Dim Connection As ADODB.Connection
Dim NumOfRec As Integer
Set Connection = New ADODB.Connection
Con = "Provider=Microsoft.ACE.OLEDB.12.0;"
Con = Con & "Data Source=\\RisorsaCondivisaAccessibile\CartellaDatabase\Database.accdb"
Connection.Open ConnectionString:=Con
Connection.Execute "UPDATE Tabella1 SET [Aggiornato]=1" & _
" WHERE [Campo 2]=" & TheRow, NumOfRec, adExecuteNoRecords
Connection.Close
Set Connection = Nothing
End Sub