Condividi tramite

Errore Sendobject su annulla invio

Anonimo
2015-09-23T07:39:17+00:00

Salve a tutti. Mi succedere una cosa strana che mi sta facendo impazzire.  

Allego sotto il codice che mi permette di aprire outolook, allegare un file ed inviarlo. Se decido di annullare l'invio il sistema esce ed il programma non si blocca.

Il problema nasce nel momento in cui utilizzo il Pacchetto per la distribuzione del software e lo faccio funzionare senza access!!! 

Fin quando invio l'allegato tutto funziona regolarmente, ma se faccio annulla il programma si blocca e devo riavviare il pc perchè mi appare l'errore allegato alla presente. Le ho provate tutte, anche mettendo un "exit sub" subito dopo l'invio, ma nulla da fare  

Questo problema mi preclude il fatto di testare il programma senza access  

A qualcuno è già successo?

Grazie a tutti

Private Sub cmdinvia_Click()

On Error Resume Next

If intrisposta = vbYes Then

DoCmd.OpenReport "Estratto conto", acViewReport, "", "[IDPratica]=" & IDPratica, acHidden

' DoCmd.OutputTo acOutputReport, "Estratto conto", "PDFFormat(*.pdf)", strNomeFile, False, "", , acExportQualityPrint

DoCmd.SendObject acReport, "Estratto conto", "PDFFormat(*.pdf)", strEmail, "", "", "Invio Estratto Conto Pratica N° " & Me.NPratica & " emessa giorno " & [Data emissione pratica] & ", "Spett.le " & Me.txtAgenzia & vbCrLf & "" & vbCrLf & "Con la presente si trasmette l'estratto conto 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 & "Le ricordiamo che il pagamento potrà essere effettuato tramite bonifico bancario." & vbCrLf & "" & vbCrLf & "In attesa di un Vs riscontro, vi porgiamo i nostri più cordiali saluti." , True, ""

End If

Errore : Exit sub

End sub

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

10 risposte

Ordina per: Più utili
  1. Anonimo
    2015-09-23T11:43:36+00:00

    Mi ha dato poi questo errore, ma solo con la modalità distribuzione

    L’azione SendObject è stata annullata.

    E’ stato utilizzato un metodo dell’oggetto Docmd per eseguire un’azione in visual Basic, ma in seguito è stato fatto clic su Annulla in una finestra di dialogo.

    E’ stato utilizzato, ad esempio,  il metodo Close  per chiudere una maschera modificata, quindi si è fatto Annulla nella finestra di dialogo in cui viene chiesto di salvare le modifiche apportate alla maschera

    Error# 3021

    Nessun record corrente

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-09-23T11:19:12+00:00

    Grazie per la pazienza, ma niente da fare. :-(

    Ho fatto il debug e non ci sono errori. Con access funziona perfettamente mentre non appena lo trasformo in pacchetto non funziona e da errore. Ti allego il codice che ho modificato

    Private Sub cmdinvia_Click()

    On Error GoTo errHandler

    Dim mailto As String

    Dim emailmsg As String

    Dim mailsub  As String

    Dim ccto     As String

    Dim bccto    As String

    mailto = "EnzoVBA"

    ccto = ""

    bccto = ""

    emailmsg = "Ciao Enzo"

    mailsub = "invio report clienti"

    intrisposta = MsgBox("Sei sicuro di voler inviare l'estratto conto per email?", vbYesNo + vbQuestion, "")

    If intrisposta = vbYes Then

        DoCmd.OpenReport "Estratto conto", acViewReport, "", "[IDPratica]=" & IDPratica, acHidden

         DoCmd.SendObject acReport, "Estratto conto", "PDFFormat(*.pdf)", mailto, ccto, bccto, mailsub, emailmsg, True

                      Exit Sub

    Else

    Exit Sub

    End If

    End If

    End If

    err_handler:

        Exit Sub

    errHandler:

        With Err

            If .Number = 2501 Then

                    MsgBox "ok operatione annullata"

            Else

                MsgBox "ERR#" & CStr(.Number) _

                    & vbNewLine & .Description, _

                     vbCritical

            End If

            Resume err_handler

        End With

    Ma come è possibile che con access funziona e trasformandolo in pacchetto no? :-(

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-09-23T09:01:47+00:00

    ciao Enzo,

    prego :-).

    ok, procediamo per tentativi.

    1)apri un modulo in VBE e prova lanciare dal menu debug compila database.

    vediamo se ottieni qualche errore.

    2)compatta e ripristina il database ed importato tutto in un nuovo database;

    3)il metodo sendObject così come lo hai implementato è di difficile debug.

    prova ad assegnare ad ogni parametro il relativo valore e passare al metodo sendObject la variabile che contiene il parametro.

    Ho il sentore che ci sia qualcosa che non va li...

    poi....imposta un punto di interruzione sull'istruzione sendObject e valuta per bene se i parametri passati sono corretti o manca qualche cosa a livello di concatenazione di stringhe apici o altro.

    qualcosa del tipo giusto per spiegarti meglio :

    Dim mailto   As String,

    dim emailmsg As String,

    dim mailsub  As String

    Dim ccto     As String

    Dim bccto    As String

    mailto = "EnzoVBA"

    ccto = ""

    bccto = ""

    emailmsg = "ciao Enzo...& vbNewLine & vbNewLine & "ti mando la tabella"

    mailsub = "invio tabella clienti"

    DoCmd.SendObject acSendTable, "clienti", acFormatXLS, mailto, ccto, bccto, mailsub, emailmsg, True

    ovviamente ....adatta i nomi al tuo scenario, tipo la tabella "clienti"...

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-09-23T08:37:07+00:00

    Ciao Sandro. 

    Gentilissimo a rispondere e grazie di tutto!!

    Purtroppo ho provato con il codice e mi da come errore :

    "se è in esecuzione un modulo di visual basic che utilizza il supporto OLE o DDE, potrebbe essere necessario interrompere il modulo" con il risultato che devo chiudere forzatamente il programma!!

    Sto appresso a questa cosa da mesi ....

    Se lo faccio girare su access non c'è problema, ma non appena lo compilo come pacchetto di distribuzione allegando Run-time succede il fattaccio.

    Non posso installare il pacchetto office su ogni pc :-(

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2015-09-23T08:00:20+00:00

    ciao Enzo,

    gestisci meglio l'errore...non uso pacchetti di distribuzione, ma provo ad indicarti una strada.

    hai un' etichetta errore: che non è legata alla gestione dell'errore stessa, ed un error resume next da utlizzare con moderazione...

    prova in questo modo.

    intesta la routine con :

    Private Sub cmdinvia_Click()

    On Error GoTo errHandler

    ' tuo codice per invio email

    err_handler:

        Exit Sub

    errHandler:

        With Err

            If .Number = 2501 Then

                    MsgBox "ok operatione annullata"

            Else

                MsgBox "ERR#" & CStr(.Number) _

                    & vbNewLine & .Description, _

                     vbCritical

            End If

            Resume err_handler

        End With

    Facci sapere.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento