Buongiorno, chi può aiutarmi ?
Ho una routine che invia mail aprendo Outlook. Vorrei si fermasse con un messaggio nel caso l'utente, all'apertura della finestra di Outlook, anziché scegliere l'account annullasse l'apertura di Outlook.
Questa è la routine:
Private Sub Comando72_Click()
Dim MyDB As DAO.Database
Dim MyRS As DAO.Recordset
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objAccount As Outlook.Account
Dim ConteggioRecord As Long
Dim mAIL As String
Dim Spedizioniere As String
Dim Funzionario As String
Dim TipoDAU As String
Dim DataDAU As String
Dim Cin As String
Dim DAU As String
Dim Terminal As String
Dim DataAssegnazione As String
Dim olApp As Object
Dim cli As String
Dim inte As String
Set MyDB = CurrentDb
Set MyRS = MyDB.OpenRecordset("Q_esiti_spedizioniere_per mail", dbOpenDynaset, dbInconsistent)
' va avanti in caso di errore
On Error Resume Next
'se outlook non è aperto lo apre
If Err Then
Set olApp = CreateObject("Outlook.Application")
End If
' Crea la sessione di Outlook
Set objOutlook = CreateObject("Outlook.Application")
' Conteggio record presenti nella query
ConteggioRecord = MyRS.RecordCount
' Se nessun record crea messaggio apposito
If ConteggioRecord = 0 Then
MsgBox "Nessuna assegnazione effettuata", vbInformation
' Altrimenti inizia loop
Else
MyRS.MoveLast
MyRS.MoveFirst
Do Until MyRS.EOF
ConteggioRecord = ConteggioRecord + 1
' Crea il messaggio e-mail
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
' Imposta indirizzo destinatario
mAIL = Nz(MyRS![mAIL])
' Imposta Spedizioniere
Spedizioniere = Nz(MyRS![Spedizioniere])
' Imposta Tipo DAU
TipoDAU = Nz(MyRS![Tipo DAU])
' Imposta DAU
DAU = Nz(MyRS![DAU])
' Imposta Cin
Cin = Nz(MyRS![Cin])
' Imposta data DAU
DataDAU = Nz(MyRS![Data DAU])
' Imposta il nome Funzionario
Funzionario = Nz(MyRS![Nominativo])
' Imposta data Assegnazione
DataAssegnazione = Nz(MyRS![Data Assegnazione])
' Imposta il nome Terminal
Terminal = Nz(MyRS![Terminal])
' Compila il messaggio email
With objOutlookMsg
.BodyFormat = olFormatPlain
.To = mAIL
.Subject = "Controlli"
.Body = "Gentile utente," & vbCrLf & _
vbCrLf & _
"Si segnala che la D.A.U. Registro " & TipoDAU & " Num. " & DAU & " / " & Cin & " del " & DataDAU & " è stata prescelta dal sistema di controllo." & vbCrLf & "La invitiamo dunque a presentarsi presso l'Ufficio Controlli per la verifica fisica che sarà effettuata
il " & DataAssegnazione & " da " & Funzionario & " presso " & Terminal & " " & vbCrLf & _
vbCrLf & _"
.Send
End With
' Modifica campo "messaggio inviato"
MyRS.Edit
MyRS![Messaggio] = True
MyRS.Update
' Passa al record successivo
MyRS.MoveNext
Loop
' Messaggio di conferma
ConteggioRecord = ConteggioRecord - 1
MsgBox "Inviati correttamente " & ConteggioRecord & " messaggi."
End If
'Chiude query e database
MyRS.Close
MyDB.Close
MsgBox "procedura invio mail terminata", vbInformation
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End Sub