@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