@Alex ha scritto:
Pensavo dovessi fare delle azioni particolari nel ciclo, tipo INVIARE le Mail...
Se devi solo scrivere INVIATO nel campo [Statovoucher] direi che conviene fare una Query Action...
Dim strSQL As String
strSQL="UPDATE NomeTabella Set [Statovoucher] = 'inviato' WHERE IdPratica=" & Me.IdPratica
DbEngine(0)(0).Execute strSQL
Ovviamente non so a cosa possa servire se poi devi inviare i Vaucer... e la tua procedura sopra non lo fa...
Grazie tante Alex!! con poche righe di codice mi hai risolto un problema (che sicuramente per te era una stupidaggine).
Per l'invio del voucher ho creato questo codice che sembra funzionare :
Private Sub imgInviaVoucher_Click()
On Error GoTo Errore
Dim strSQL As String
Dim strNomeFile As String
Dim strEmail As String
Dim intRisposta As Integer
strNomeFile = "C:\Users\STUDIO\Desktop\Voucher\" & "Voucher_PraticaN_" & Me.NPratica & ".pdf"
        If IsNull(Me.txtMailAg) Then
        strEmail = ""
        Else: strEmail = Me.[txtMailAg]
        End If
    
intRisposta = MsgBox("Sei sicuro di voler inviare il voucher per email?", vbYesNo + vbQuestion, "")
If intRisposta = vbYes Then
    strSQL = "UPDATE Voucher Set [Statovoucher] = 'inviato' WHERE IdPratica=" & Me.IDPratica
    DBEngine(0)(0).Execute strSQL
    Forms!Pratica.Refresh
        
    DoCmd.OpenReport "Voucher unico", acViewReport, "", "[Voucher.IdPratica]=" & [IDPratica], acHidden
    DoCmd.OutputTo acOutputReport, "Voucher unico", "PDFFormat(*.pdf)", strNomeFile, False, "", , acExportQualityPrint
      
    DoCmd.SendObject acReport, "Voucher unico", "PDFFormat(*.pdf)", strEmail, "", "", "Invio Voucher Pratica N° " & Me.NPratica & " emessa giorno " & [Data emissione pratica] & " da Fevitour di Pietro Catalano", "Spett.le " & Me.txtAgenzia & vbCrLf & "" & vbCrLf & "Con la presente si trasmette il voucher  relativamente alla Pratica N° " & Me.NPratica & " emessa giorno " & Me.[Data emissione pratica] & " per il servizio offerto presso la Struttura " & Me.txtStruttura & " con partenza giorno " & Me.DataPartenza & " e rientro giorno " & Me.Datarientro & "." & vbCrLf & vbCrLf & "" & vbCrLf & "Restando sempre a Vs disposizione, vi porgiamo i nostri più cordiali saluti." & vbCrLf & " " & vbCrLf & "Agenzia Pinco Pallo ", True, ""
    
Else
Exit Sub
End If
             
Errore: Exit Sub
End Sub
se pensi di possa migliorare non esitare e darmi suggerimenti!! Sto cominciando la poco con la programmazione e mi rendo conto che la strada è lunga.   
Nel frattempo avevo pensato ad un altra soluzione al mio problema (che tu hai risolto in due secondi...) ma non appena faccio il test, effettivamente mi scrive inviato ma mi si blocca il pc  . Sembra non finire mai... cosa sbaglio??? Ti allego il codice..e grazie sempre!!
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM Voucher", dbOpenForwardOnly)
With rs
.MoveFirst
Do Until .EOF
If !IDPratica = Testo107 Then
.Edit
![Statovoucher] = "inviato"
.Update
Else
.MoveNext
End If
Loop
.Close
End With
MsgBox "aggiornamento completato", vbInformation
update_exit:
DoCmd.Hourglass False
Exit Sub
update_err:
MsgBox " Errore: " & Err.Number & " " & Err.Description
Resume update_exit:
Set rs = Nothing