Help su CDO Mail

di il
19 risposte

Help su CDO Mail

Salve,
avrei bisogno di aiuto.
Ho inserito questo codice in una maschera che mi invia un'email con la tecnica CDO Mail e funziona perfettamente
Private Sub cmd_Email_CDO_Click()
    On Error GoTo Error_Handler
    Dim bMissingSettings      As Boolean

    'Normally you'd first validate that you have the necessary controls (To, Subject, Msg, ...) filled out before trying to send the e-mail

    If DLookup("smtpserverport", "tbl_CDOSettings") = Null Then
        bMissingSettings = True
    Else
        TempVars.Add "smtpserverport", DLookup("smtpserverport", "tbl_CDOSettings")
    End If

    If DLookup("smtpserver", "tbl_CDOSettings") = Null Then
        bMissingSettings = True
    Else
        TempVars.Add "smtpserver", DLookup("smtpserver", "tbl_CDOSettings")
    End If

    If DLookup("sendusername", "tbl_CDOSettings") = Null Then
        bMissingSettings = True
    Else
        TempVars.Add "sendusername", DLookup("sendusername", "tbl_CDOSettings")
    End If

    If DLookup("sendpassword", "tbl_CDOSettings") = Null Then
        bMissingSettings = True
    Else
        TempVars.Add "sendpassword", DLookup("sendpassword", "tbl_CDOSettings")
    End If

    If bMissingSettings = True Then
        MsgBox "Your CDO Mail settings are incomplete.", vbCritical Or vbOKOnly, "Operation Cancelled"
    Else
        If Me.chk_Edit = True Then
            If vbYes = MsgBox("Although you have selected to preview the e-mail prior to sending it, please note that CDO mail does not support this." & _
                              vbCrLf & vbCrLf & _
                              "Would you still like to send the e-mail without previewing it?", vbQuestion Or vbYesNo, "No Preview, Send Anyways?") Then
                Call SendCDOMail(Me.txt_To, Me.txt_Subject, Me.txt_Msg, Me.txt_BCC)
            End If
        Else
            Call SendCDOMail(Me.txt_To, Me.txt_Subject, Me.txt_Msg, Me.txt_BCC)
        End If

    End If

Error_Handler_Exit:
    On Error Resume Next
    Exit Sub

Error_Handler:
    MsgBox Err.Number & vbCrLf & Err.Description
    Resume Error_Handler_Exit
End Sub
Nel comando Call SendCDOMail(Me.txt_To, Me.txt_Subject, Me.txt_Msg, Me.txt_BCC) non riesco ad utilizzare dei campi esistenti nella maschera cioè vorrei utilizzare il contenuto di un campo esistente al posto di Me.txt_Msg

19 Risposte

  • Re: Help su CDO Mail

    Cambia il riferimento... non capisco il problema...
  • Re: Help su CDO Mail

    L'ho fatto ma mi da errore
    94
    Utilizzo non valido di null
  • Re: Help su CDO Mail

    Provo a fare in questo modo
    Call SendCDOMail("", "Assistenza Utente", [UTENTE])
    Dove [utente] è il campo di una maschera ma mi restituisce l'errore precedente
  • Re: Help su CDO Mail

    track909 ha scritto:


    Dove [utente] è il campo di una maschera ma mi restituisce l'errore precedente
    Nella maschera non ci sono campi ma controlli e in questo caso la differenza non è trascurabile.
    Se questa funzione
    Call SendCDOMail(Me.txt_To, Me.txt_Subject, Me.txt_Msg, Me.txt_BCC)
    funziona, per riferirti ad un controllo nella maschera invece di [UTENTE] bisogna usare la "notazione da maschera": Me.NomeControllo.
  • Re: Help su CDO Mail

    Philcattivocarattere ha scritto:


    track909 ha scritto:


    Dove [utente] è il campo di una maschera ma mi restituisce l'errore precedente
    Nella maschera non ci sono campi ma controlli e in questo caso la differenza non è trascurabile.
    Se questa funzione
    Call SendCDOMail(Me.txt_To, Me.txt_Subject, Me.txt_Msg, Me.txt_BCC)
    funziona, per riferirti ad un controllo nella maschera invece di [UTENTE] bisogna usare la "notazione da maschera": Me.NomeControllo.
    Si, ok, l'unica cosa è che la funzione indicata funziona con quei controlli che sono di una maschera.
    Nel mio caso vorrei riferirmi ad un controllo che si trova in un'altra maschera.
    Come posso fare?
  • Re: Help su CDO Mail

    track909 ha scritto:


    ...Nel mio caso vorrei riferirmi ad un controllo che si trova in un'altra maschera.
    Ecco una delle pagine più complete e chiare in merito: Refer to Form and Subform properties and controls
  • Re: Help su CDO Mail

    Philcattivocarattere ha scritto:


    track909 ha scritto:


    ...Nel mio caso vorrei riferirmi ad un controllo che si trova in un'altra maschera.
    Ecco una delle pagine più complete e chiare in merito: Refer to Form and Subform properties and controls
    Niente..... mi restituisce sempre errore 94
    Il campo a cui vorrei fare riferimento si trova nella maschera ASSISTENZA_UTENTI ed ha come origine controllo UTENTE della tabella ASSISTENZA UTENTE.
    Il campo UTENTE ha nome elemento utente
    Quindi nella funzione
    Call SendCDOMail(Me.txt_To, Me.txt_Subject, Me.txt_Msg, Me.txt_BCC)
    al posto del riferimento Me.txt_Msg che ha origine nella maschera frm_Send_Email vorrei puntare a UTENTE
  • Re: Help su CDO Mail

    Se la funzione è definita Public in un Modulo, devi solo sostituire i Controlli di rifeirmento della Maschera da cui la chiami sono 3 Controlli...
  • Re: Help su CDO Mail

    @Alex ha scritto:


    Se la funzione è definita Public in un Modulo, devi solo sostituire i Controlli di rifeirmento della Maschera da cui la chiami sono 3 Controlli...
    Function SendCDOMail(sTo As String, _
                         sSubject As String, _
                         sBody As String, _
                         Optional sBCC As Variant, _
                         Optional AttachmentPath As Variant)
        On Error GoTo Error_Handler
        Dim objCDOMsg             As Object
        Dim i                     As Long
    
        Set objCDOMsg = CreateObject("CDO.Message")
    [...]
        'CDO Message
        objCDOMsg.Subject = sSubject
        objCDOMsg.From = DLookup("sendusername", "tbl_CDOSettings")
        objCDOMsg.To = sTo
        '    objCDOMsg.CC = sCC
        If Not IsMissing(sBCC) And IsNull(sBCC) = False Then
            objCDOMsg.BCC = sBCC
        End If
        objCDOMsg.TextBody = sBody
    Questa è parte della funzione richiamata dalla maschera
    Io vorrei agire su sBody riferendomi ad un campo della mia maschera (UTENTE)
  • Re: Help su CDO Mail

    Vuoi dire che hai i dati da inserire in 2 Form distinte...?
    Beh innanzitutto l'idea è assai discutibile... ma vedrai tu...

    QUando la chiami dovrai solo esplicitare l'origine di quel controllo che non è nella Maschera che chiama la Funzione:
    
    Call SendCDOMail(Me.txt_To, Me.txt_Subject, Forms!NomeForm!txt_Msg, Me.txt_BCC)
  • Re: Help su CDO Mail

    @Alex ha scritto:


    Vuoi dire che hai i dati da inserire in 2 Form distinte...?
    Beh innanzitutto l'idea è assai discutibile... ma vedrai tu...

    QUando la chiami dovrai solo esplicitare l'origine di quel controllo che non è nella Maschera che chiama la Funzione:
    
    Call SendCDOMail(Me.txt_To, Me.txt_Subject, Forms!NomeForm!txt_Msg, Me.txt_BCC)
    Riesco a rispondere solo adesso......
    Nella maschera da cui chiamo la funzione, l'origine del controllo se è riferito ad una casella di testo non associata funziona perfettamente, quindi
    Call SendCDOMail(Me.txt_To, Me.txt_Subject, Forms!NomeForm!txt_Msg, Me.txt_BCC) va bene.
    Non funziona se è riferita ad una casella di testo la cui origine dati è un campo di una tabella ed è questa la mia necessità.
    Come potrei fare?
  • Re: Help su CDO Mail

    Guarda, stai portando spiegazioni che non sono tecnicamente sensate, quello che dici non può essere quindi devi avere altre cose che fanno difetto, sicuramente non quello che dici come motivazione, di conseguenza è improbabile capirsi e provare a darti altre soluzioni.
  • Re: Help su CDO Mail

    @Alex ha scritto:


    Guarda, stai portando spiegazioni che non sono tecnicamente sensate, quello che dici non può essere quindi devi avere altre cose che fanno difetto, sicuramente non quello che dici come motivazione, di conseguenza è improbabile capirsi e provare a darti altre soluzioni.
    In una maschera chiamata ASSISTENZA ho un campo della tabella ASSISTENZA_UTENTE denominato PROBLEMA.
    Nella stessa maschera ASSISTENZA ho una casella di testo non associata chiamata PROVA.
    In questa maschera tramite un pulsante invio un'email ad un indirizzo fisso, chiamando la funzione SendCDOMail.
    In questa mail, il corpo del messaggio deve essere il contenuto del campo PROBLEMA della tabella ASSISTENZA_UTENTE.
    Con la funzione Call SendCDOMail("", "Richiesta Assistenza", Forms!ASSISTENZA!PROVA), usando la casella di testo non associata PROVA, funziona tutto perfettamente nel senso che il corpo dell'email contiene il contenuto della casella di testo PROVA; se invece utilizzo il campo PROBLEMA, la funzione non va.
  • Re: Help su CDO Mail

    track909 ha scritto:


    @Alex ha scritto:


    Guarda, stai portando spiegazioni che non sono tecnicamente sensate, quello che dici non può essere quindi devi avere altre cose che fanno difetto, sicuramente non quello che dici come motivazione, di conseguenza è improbabile capirsi e provare a darti altre soluzioni.
    In una maschera chiamata ASSISTENZA ho un campo della tabella ASSISTENZA_UTENTE denominato PROBLEMA.
    Nella stessa maschera ASSISTENZA ho una casella di testo non associata chiamata PROVA.
    In questa maschera tramite un pulsante invio un'email ad un indirizzo fisso, chiamando la funzione SendCDOMail.
    In questa mail, il corpo del messaggio deve essere il contenuto del campo PROBLEMA della tabella ASSISTENZA_UTENTE.
    Con la funzione Call SendCDOMail("", "Richiesta Assistenza", Forms!ASSISTENZA!PROVA), usando la casella di testo non associata PROVA, funziona tutto perfettamente nel senso che il corpo dell'email contiene il contenuto della casella di testo PROVA; se invece utilizzo il campo PROBLEMA, la funzione non va.
    L'esempio che ho fatto è più chiaro?
Devi accedere o registrarti per scrivere nel forum
19 risposte