Newsgroup: it.comp.appl.access
Titolo: Automazione Invio Dati da Access ad Outlook

Ciao al NG,
Dalla sezione General del Sito Comune ho scaricato ed utilizzato "Esempio di
automazione per l'invio e la formattazione di dati da Access a Word usando i
bookmarks" numero 6.137, postato da Namor. Il tutto funziona egregiamente,
uso Office 2003. Avendo bisogno di fare la stessa cosa, però verso Outlook,
mi chiedevo se era possibile farlo, e se eventualmente qualcuno sapesse
darmi qualche dritta.
Grazie

 ha scritto nel messaggio 
news:b3YVd.1002723$35.37...@news4.tin.it...

E' possibile.
Per prima cosa devi installare la libreria di Outlook dall'Editor vba di 
Access: Strumenti\Riferimenti\Microsoft Outlook 11.0 object library. In 
questo modo dal visualizzatore oggetti puoi agevolmente consultare la guida 
vba di outlook che ha un sacco di oggetti strani e curiosi. Un viaggio 
esotico.
L'automazione funziona allo stesso modo, ma con application.outlook al posto 
di application.word. Ovviamente gli oggetti VBA sono completamente diversi e 
bisogna studiarseli dalla guida.
Per farti qualche esempio è posibile creare da access, nuove cartelle di 
posta, modificare contatti, inserire appuntamenti, inviare mail, ecc. ecc.
Prova a descrivere meglio quello che vuoi fare esattamente e, se ne sarò 
capace, proverò a darti qualche info in più.
vtt 

 ha scritto nel messaggio
news:d2bmpe$oop$1...@fata.cs.interbusiness.it...

Grazie per la risposta,
Cercavo dei pezzi di codice di esempio per riuscire a capire come posso
gestire le varie funzionalità di Outlook da Access.
Mi sarebbe utile avere sotto mano il codice per aprire Outlook da Access e
gestire i vari destinatari della mail, l'oggetto e il corpo della mail
recuperando questi dati tramite una query su access.
Ciao Charliebo59


Riscrivo perché la prima risposta non è mai arrivata. Chissà cosa ho 
combinato...
Dicevo che non mi è molto chiaro cosa vorresti fare di preciso, ma ti 
inserisco alcune query che recuperano i dati da Outlook ed un esempio di 
invio mail che aggiusterai a seconda delle tue esigenze.
Purtroppo non è un argomento di cui ho una forte esperienza, ma 
arabbattandomi con la quida in linea sono riuscito a fare alcune cose 
interessanti: di consiglio quindi di smanettare e rismanettare...
Queste query ISAM di esempio frugano nele cartelle di OL e permettono anche 
la cancellazione dei dati quindi okkio!
Dovresti incollarle così come sono (su una stessa se le vedi a capo) in 
visualizzazione sql, l'unica cosa da modificare è il nome della eventuale 
sottocartella. Dopo aver testato il funzionamento le puoi perfezionare dalla 
visualizzazione struttura.
Recupero dei dati dai contatti:
SELECT * FROM [Contatti] IN 'C:\'[Outlook 9.0;MAPILEVEL=Cartelle 
personali|];
Recupero dei dati da una sottocartella dei contatti:
SELECT * FROM [Sottocartella] IN 'C:\'[Outlook 9.0;MAPILEVEL=Cartelle 
personali|Contatti];
Recupero dei dati dalla posta in arrivo:
SELECT * FROM [Posta in arrivo] IN 'C:\'[Outlook 9.0;MAPILEVEL=Cartelle 
personali|];
Recupero dei dati da una sottocartella della posta in arrivo:
SELECT * FROM [Sottocartella] IN 'C:\'[Outlook 9.0;MAPILEVEL=Cartelle 
personali|Posta in arrivo];
Tutto questo funziona senza automazione, ma devi avere OL installato e come 
client di posta predefinito.
Per poter inviare mail tramite OL, prova a modificare questa routine scritta 
su Access, magari creando un recodset basato sulle query ISAM:
Sub CreateOutlookMail()
    Dim olApp               As Outlook.Application
    Dim olMailMessage       As Outlook.MailItem
    Dim olRecipient         As Outlook.Recipient
    Dim blnKnownRecipient   As Boolean
    ' Create new instance of Outlook or open current instance.
    Set olApp = New Outlook.Application
    ' Create new message.
    Set olMailMessage = olApp.CreateItem(olMailItem)
    ' Prompt for message recipient, attempt to resolve address, and
    ' then send or display.
    With olMailMessage
        Set olRecipient = .Recipients.Add(InputBox("Enter name of message 
recipient", _
            "Recipient Name"))
        blnKnownRecipient = olRecipient.Resolve
        .Subject = "Testing mail by Automation"
        .Body = "This message was created by VBA code running Outlook 
through Automation."
        If blnKnownRecipient = True Then
            .Send
        Else
            .Display
        End If
    End With
    Set olMailMessage = Nothing
    olApp.Quit
    Set olApp = Nothing
End Sub
Ricorda che devi avere il riferimento alla library di OL come da post 
precedente.
Buon lavoro! ...e consulta l'help!
vtt

 ha scritto nel messaggio
news:d2ttrm$2k$1...@balena.cs.interbusiness.it...

Ti ringrazio, era esattamente ciò che mi serviva !
Ciao Charliebo59