Automazione di Access e Outlook

di il
2 risposte

Automazione di Access e Outlook

Buongiorno a tutti.

Mi ripresento dopo tanto tempo con un nuovo nick in quanto il vecchio account non risulta più accessibile.

Aldilà di questo. 

Ho alcune difficoltà ad automatizzare la sincronizzazione di Access con Outlook. 
Mi spiego meglio. Ho una routine che ogni 5 minuti va a scansionsare le email ricevute su una casella Gmail, e se ne trova di nuove la importa nel DB ed in base ad alcuni parametri “reagisce”.

Funziona tutto perfettamente, tranne la sincronizzazione di Outlook. Ovvero al ricevimento di una nuova mail devo FISICAMENTE aprire Outlook per consentirgli di scaricare la nuova mail, mentre io avrei gradito farlo in background dato che il DB si trova su un server a cui nessuno ha accesso.

Ho provato i vari metodi come il SyncObject e il SendAndReceive. Ma niente.

Dato che ho sempre utilizzato la libreria CDO per le email, ma mi chiedono l'appoggio ad OutLook per via della sincronizzazione dei destinatari chiedevo a qualcuno se puoò darmi qualche dritta. So che sto girando attorno ad una boa, ma non ne vengo a capo. 

2 Risposte

  • Re: Automazione di Access e Outlook

    Nella fattispecie questo è quello che date le poche conoscenze dell'automazione di Outlook da Access ho partorito.

    Public Function ReadOutlookMail() As Boolean
    Dim OtlkApp As Object
    Dim MapiSpace As Object
    Dim ObjSyncs As Object
    Dim ObjSync As Object
    Dim I As Long
    Dim Email As DAO.Recordset
    Dim Contatti As DAO.Recordset
    Dim DataReceived, TimeReceived As Date
    Dim Testo, Ora, Mittente, Comando, StrSQL As String
    Dim Salta As Boolean
    
     ReadOutlookMail = False
     On Error Resume Next
     Set OtlkApp = GetObject(, "Outlook.Application")
     If Err.Number = 429 Then Set OtlkApp = CreateObject("Outlook.Application")
     On Error GoTo 0
     Set MapiSpace = OtlkApp.GetNamespace("MAPI")
     Set ObjSyncs = MapiSpace.SyncObjects
     For I = 1 To ObjSyncs.Count
       Set ObjSync = ObjSyncs.Item(I)
       ObjSync.Start
     Next I

    Ma comunque nonostante ci siano 2 nuove mail di prova da leggere, Se NON APRO FISICAMENTE outlook esso non ricarica le nuove mail nella inbox.
    Non capisco se è un problema di settaggi di Outlook o meno.

  • Re: Automazione di Access e Outlook

    14/09/2023 - LupoScortese ha scritto:


    Se NON APRO FISICAMENTE outlook

    Che cosa intendi per "aprire fisicamente"? 

    Quando sei in questa fase di sviluppo/debug è molto utile l'uso dell'earlybinding, mentre il tuo codice è in latebinding, pronto per la distribuzione. Per mettere insieme il tutto la compilazione condizionale è la soluzione ottimale… (ah… Gibra, Gibra… il maestro in questo)

    Quanto utilizzi Outlook senza VBA, quindi in modalità classica, da interfaccia utente, all'apertura esegue il download delle e-mail in automatico? Devi inserire qualche password?

    Se il problema sta tutto e solo nella visualizzazione, qualche spiegazione sul comportamento di Outlook la puoi trovare qui

    https://codekabinett.com/rdumps.php?Lang=2&targetDoc=outlook-automation-main-window

    dove c'è anche il suggerimento su come ottenere il risultato.

    Quindi un occhio al metodo Display dell'oggetto Folder

    https://learn.microsoft.com/en-us/office/vba/api/outlook.folder.display

Devi accedere o registrarti per scrivere nel forum
2 risposte