INVIO MAIL PARAMETRIZZATA DA MASCHERA E SOTTOMASCHERA

di il
6 risposte

INVIO MAIL PARAMETRIZZATA DA MASCHERA E SOTTOMASCHERA

Ciao a tutti
Il mio problema è il seguente:
Ho 2 Tabelle collegate, PIC e LISTA APPARATI, con una relazione di tipo 1 a molti.
Tramite una query parametrica ottengo una Maschera con i dati (PIC) ed una sottomascera con i dati (LISTA APPARATI).
Dai dati di questa FORM vorrei inviare una mail ma non riesco ad ottenere tutti i record della sottomaschera ma solo il primo.
Riporto il codice:
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

If DEROGA = -1 Then
DER = "IN DEROGA"
MODER = NOTE
Else
DER = ""
MODER = ""
End If

On Error Resume Next
With OutMail
.To = ""
.cc = ""

.Subject = "PIC " & [ID PIC] & " - " & "Accettazione in esercizio " & DER & " del progetto " & PERAF & " - " & [NOME ANELLO]
.body = "Salve si comunica l'esito positivo del collaudo della porzione di rete " & [NOME ANELLO] & " così composto: " & _
Chr(10) & _
Chr(10) & [LISTA APPARATI]!LOCATION & " " & [LISTA APPARATI]!APPARATO & "   " & [LISTA APPARATI]![TIPO APPARATO] & _
Chr(10) & _
Chr(10) & "La porzione di rete indicata è da ritenersi quindi IN ESERCIZIO " & DER & " " & MODER & _
Chr(10) & "Si prega di estendere la presente comunicazione alle persone interessate " & _
Chr(10) & "Cordiali Saluti " & _
Chr(10) & TECNICO

.Display

End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

DoCmd.Close acForm, Forms![INVIAMAIL].Name

End Sub
Vi ringrazio in anticipo anche solo per il tempo che perdete per leggere il mio quesito.

6 Risposte

  • Re: INVIO MAIL PARAMETRIZZATA DA MASCHERA E SOTTOMASCHERA

    I dati della Form sono quelli che ti servono ed accessibili dai Controlli Visibili, ma i dati della SubForm accessibili sono esclusivamente quelli del Record Corrente, quindi di fatto STATICI.
    Per prenderli tutti devi partire dal RecordsetClone della SubForm e ciclarlo, e prelevare i valori non dai controlli, quanto dai Campi equivalenti del Recordset e ricostruire una sorta di Stringa...!
    
    Dim strTxt As String
    With Me![NomeSubForm].Form.RecordsetClone
       .MoveFirst
       Do Until .Eof
           strTxt= strTxt & .Fields("NomeCampo1").Value & .Fields("NomeCampo2").Value & vbNewLine
           .MoveNext
       Loop
       .Bookmark=Me![NomeSubForm].Form.Bookmark
    End With
    Fai attenzione a come scrivi le stringhe lunghe... ci sono limiti di lunghezza nel VBE di solito meglio scrivere così
    
    Dim strTxt As String
    strTxt=strTxt & ".......prima riga...." 
    strTxt=strTxt & ".......seconda riga...." 
    strTxt=strTxt & ".......terza riga...." 
    strTxt=strTxt & ".......ultima riga...." 
  • Re: INVIO MAIL PARAMETRIZZATA DA MASCHERA E SOTTOMASCHERA

    Oggi non mi è possibile verificare la tua soluzione ma domani sarà una delle prime cose che farò, per il momento ti ringrazio moltissimo!
  • Re: INVIO MAIL PARAMETRIZZATA DA MASCHERA E SOTTOMASCHERA

    Grazie mille Alex!!!
    La soluzione da te proposta è perfetta.
  • Re: INVIO MAIL PARAMETRIZZATA DA MASCHERA E SOTTOMASCHERA

    Buongiorno a tutti!
    Chiedo scusa in anticipo, sono una principiante che ha però la stessa esigenza di Luka.
    Ho provato a copiare lo stesso codice modificando secondo i miei dati. Mi occorre che mi vengano restituiti tutti i record della sottomaschera, ma pur inserendo il codice indicato mi compare sempre solo il primo record.
    Dove sbaglio?

    Private Sub Invia_ordine_Click()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strTxt As String
    With Me![DivisaScolastica Sottomaschera1].Form.RecordsetClone
    .MoveFirst
    Do Until .EOF
    strTxt = strTxt & ".......prima riga...."
    strTxt = strTxt & ".......seconda riga...."
    strTxt = strTxt & ".......terza riga...."
    strTxt = strTxt & ".......ultima riga...."
    strTxt = strTxt & .Fields("Quantità").Value & .Fields("Description").Value & .Fields("Modello") & vbNewLine
    .MoveNext
    Loop
    .Bookmark = Me![DivisaScolastica Sottomaschera1].Form.Bookmark
    End With
    Dim strbody As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
    .To = [email]
    .cc = ""

    .Subject = "RIEPILOGO ORDINE DIVISA SCOLASTICA"
    .body = "Gentile Famiglia, " & _
    Chr(10) & _
    Chr(10) & [DivisaScolastica Sottomaschera1]!Quantità & " " & [DivisaScolastica Sottomaschera1]!Description & " " & [DivisaScolastica Sottomaschera1]!Modello & _
    Chr(10) & _
    Chr(10) & "Rispondere solo in caso di segnalazione anomalie" & _
    Chr(10) & "Si prega di estendere la presente comunicazione alle persone interessate " & _
    Chr(10) & "Cordiali Saluti " & _
    Chr(10) & Graziella

    .Display

    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
    End Sub

    chiedo ancora scusa per la mia poca preparazione... avrei però tanta voglia di imparare.
    Buona giornata
  • Re: INVIO MAIL PARAMETRIZZATA DA MASCHERA E SOTTOMASCHERA

    Prima cosa da fare è leggere il regolamento... in particolare PUNTO 3.
    Il codice si deve inserire tra i TAG del codice..!

    Apri un Nuovo 3D con la tua esigenza ed eventualmente metti il LINK a questo vecchio.
  • Re: INVIO MAIL PARAMETRIZZATA DA MASCHERA E SOTTOMASCHERA

    Scusami,
    lo faccio subito
Devi accedere o registrarti per scrivere nel forum
6 risposte