Ciao Sandro
era proprio quello che cercavo, sapevo che era possibile solo utilizzando il VBA ma non riuscivo a trovare nulla che mi potesse aiutare per evitare di utilizzare le macro di access che, sebbene facilissime da utilizzare sono, troppo spesso molto limitate.
sono riuscito ad introdurre anche i controlli per evitare di inviare due volte l'ordine al fornitore e a inserire automaticamente l'indirizzo mail, ti posto il codice:
Private Sub cmdOUTLOOK_Click()
On Error GoTo errHandler
Dim strReport As String
Dim strMessage As String
Dim strAttName As String
Dim strReceiver As String
If Forms![ordine_materiali]![MAILORDINE] = True Then
MsgBox "Lo stato dell'Ordine ? impostato su mail gi? inoltrata", vbInformation, "ATTENZIONE!!!"
GoTo AA
Else
Forms![ordine_materiali]![MAILORDINE] = True
Forms![ordine_materiali]![STATOORDINE] = "INOLTRATO"
End If
strReport = "R_ORDINE" ' personalizza il nome del report
strMessage = "Buongiorno, " & vbNewLine & _
"In allegato l'ordine in oggetto." & vbNewLine & _
"Distinti saluti."
strAttName = "ordineFornitore_N." & Me.NUM_ORDINE & "_dataOrdine_" & Me.DATAORDINE ' personalizza il nome dei controlli
strReceiver = Me.MAIL 'MAIL ? il campo contenente l'indirizzo mail
With DoCmd
.OpenReport reportName:=strReport, _
view:=acViewPreview, _
windowMode:=acHidden
Reports(strReport).Caption = strAttName
.SendObject objectType:=acSendReport, _
objectname:=strReport, _
outputformat:=acFormatPDF, _
To:=strReceiver, _
Subject:=strAttName, _
messageText:=strMessage, _
editMEssage:=-1, _
TemplateFile:=0
End With
exitErr_handler:
DoCmd.Close objectType:=acReport, _
objectname:=strReport
Exit Sub
errHandler:
With Err
Select Case Err
Case 2501
VBA.MsgBox prompt:="Invio Annullato", _
buttons:=vbInformation, _
Title:="AVVISO"
Case Else
VBA.MsgBox "ERR#" & .Number _
& vbNewLine & .Description _
, vbOKOnly Or vbCritical
End Select
Resume exitErr_handler
End With
AA:
End Sub
Sei davvero un grande, sono fortunato ad aver trovato te come mentore!!!
Grazie ancora e, a presto
Ciro