Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Inviare da codice VBA una e-mail con allegati OUTLOOK 2003

2,280 views
Skip to first unread message

cristian

unread,
Jun 17, 2011, 3:30:47 AM6/17/11
to
Buongiorno a tutti! sto utilizzando il codice sotto per inviare mail con
allegati con outlook express.
Tutte le mail che invio me le ritrovo nella posta inviata.

Vorrei fare la stessa cosa ma utilizzando outlook 2003 di office

Qualcuno riesce a darmi una mano per modificare il codice??

Grazie!
Ciao Chita


Dim aTO(0 To 1) As String
Dim aCC(0 To 1) As String
Dim aBCC(0 To 0) As String
Dim aFiles(0 To 2) As String
Dim stDirectory As String
Dim stNomeFilePre As String
Dim stNomeFileId As String
Dim stIndMailTO As String
Dim stIndMailCC As String
Dim stIndMailCC1 As String
Dim stOggettoMail As String
Dim stTestoMail As String
Dim stDocName7 As String
Dim stDocName8 As String
Dim stDocName9 As String
Dim NomeFileOrdine
stDirectory = "C:\documenti\"
stNomeFilePre = "ord"
stNomeFileId = Forms!ORDINIFORNITORI!ID
stIndMailTO = Forms!ORDINIFORNITORI!email

If Not IsNull(Forms!ORDINIFORNITORI!emailTO) Then
stIndMailCC = Forms!ORDINIFORNITORI!emailTO
End If

If Not IsNull(Forms!ORDINIFORNITORI!emailCC) Then
stIndMailCC1 = Forms!ORDINIFORNITORI!emailCC
End If

stOggettoMail = Forms!ORDINIFORNITORI!OggettoMail
stTestoMail = Forms!ORDINIFORNITORI!testomail

Refresh
'invio il messaggio
aTO(0) = stIndMailTO
'invio il messaggio ad un secondo indirizzo ma non � usato vedi il
modulo inviomailconaccess REM for i
aTO(1) = stIndMailTO

aCC(0) = stIndMailCC
'invio il messaggio ad un secondo indirizzo CC ma essendo nullo non
lo invia
aCC(1) = stDocName7
'invio il messaggio ad un indirizzo CCN nascosto ma essendo nullo
non lo invia
aBCC(0) = stDocName8
'Oggetto della mail
OBJX = stDocName5 & ": " & stOggettoMail & " " & stDocName4
'Testo nella mail
MSGX = stTestoMail

'vado a leggere il nome del file da inviare e allegare alla mail
NomeFileOrdine = Dir(stDirectory & stDocName5 & "_" & stDocName3 &
stDocName4 & ".pdf")
'verifico se l'allegato � stato inserito
If NomeFileOrdine = "" Then
MsgBox "Attenzione non � stato allegato alcun ordine alla mail!",
vbInformation, "info"
Exit Sub
Else

aFiles(0) = NomeFileOrdine
MsgBox "Ordine " & NomeFileOrdine & " allegato alla mail!",
vbInformation, "info"

' aFiles(1) = "C:\EMAIL\Quo.ZIP"
' aFiles(2) = "C:\DOC\Qua.PDF"


Invia_MSOE aTO, aCC, aBCC, OBJX, MSGX, aFiles

Bruno Campanini

unread,
Jun 17, 2011, 6:57:24 AM6/17/11
to
cristian on 17-06-11 wrote:
> Buongiorno a tutti! sto utilizzando il codice sotto per inviare mail con
> allegati con outlook express.
> Tutte le mail che invio me le ritrovo nella posta inviata.
>
> Vorrei fare la stessa cosa ma utilizzando outlook 2003 di office
>
> Qualcuno riesce a darmi una mano per modificare il codice??
[...]

Prova a usare questo:

===================================
Private Sub SendMail_Click()
' Access 2003, Outlook 2003, References:
' Visual Basic for Applications
' Microsoft Access 11.0 Object Library
' Microsoft Outlook 11.0 Object Library
'
Dim NewMail As MailItem, AttachArray(1 To 2) As String, i As Integer

Set NewMail =
CreateObject("Outlook.Application").CreateItem(olMailItem)
AttachArray(1) = "C:\aa1.txt"
AttachArray(2) = "C:\aa2.txt"

With NewMail
.To = [eMailAddress]
.Subject = [eMailSubject]
.Body = [eMailMessage]
.CC = "brun...@libero.it;cmp...@gmail.com"
For i = 1 To 2
.Attachments.Add AttachArray(i)
Next
.Send
End With

End Sub
==========================================

[eMailAddress], [eMailSubject], [eMailMessage] sono controlli
della scheda dalla quale fai partire la subroutine.
Se devi aumentare gli Attachments modifica AttachArray().

Bruno


Cristian

unread,
Jun 17, 2011, 5:55:20 PM6/17/11
to
Ok grazie per il suggerimento, ma dimenticavo che l'applicazione �
sviluppata con A97 pertanto il codice sotto non mi funziona...
Quindi chiedo se � possibile inviare la mail utilizzando outlook 2003 con
A97?
Spero in un codice....diversamente dovr� convertire prima il tutto e poi
applicare quanto sotto!

Grazie
Ciao
Chita

"Bruno Campanini" <bruno...@libero.it> ha scritto nel messaggio
news:4dfb3317$0$18598$4faf...@reader2.news.tin.it...

Karl Donaubauer

unread,
Jun 17, 2011, 6:08:41 PM6/17/11
to
Cristian wrote:
> "Bruno Campanini ha scritto:
>> ...

> ...dimenticavo che l'applicazione ᅵ


> sviluppata con A97 pertanto il codice sotto non mi funziona...

Adesso hai dimenticato un'altra piccolezza:

"non mi funziona" si esprime come?
Cosa succede o non succede, numero e messaggio di errore?

Puo darsi che non hai attivato il riferimento a Outlook
nel menᅵ Strumenti - Riferimenti?

> Quindi chiedo se ᅵ possibile inviare la mail utilizzando outlook
> 2003 con A97?
> ...

Il codice ᅵ identico.

--
Ciao
Karl
*********
Access FAQ: http://www.donkarl.com/it

Franchi Graziano & Famiglia

unread,
Jun 17, 2011, 6:09:54 PM6/17/11
to
Prova Questa:

Option Compare Database

Option Explicit

Type MAPIMessage
Reserved As Long
Subject As String
NoteText As String
MessageType As String
DateReceived As String
ConversationID As String
flags As Long
RecipCount As Long
FileCount As Long
End Type

Type MapiRecip
Reserved As Long
RecipClass As Long
Name As String
Address As String
EIDSize As Long
EntryID As String
End Type

Type MapiFile
Reserved As Long
flags As Long
Position As Long
PathName As String
FileName As String
FileType As String
End Type

'Public Dialogue As MAPIMessage
'Private Dialogue As MAPIMessage

'@@@Outlook Express
'Declare Function MAPISendMail Lib "c:\programmi\outlook express\msoe.dll"
Alias "BMAPISendMail" (ByVal Session&, ByVal UIParam&, Message As
MAPIMessage, Recipient() As MapiRecip, File() As MapiFile, ByVal flags&,
ByVal Reserved&) As Long
'@@@Outlook
Declare Function MAPISendMail Lib "MAPI32.DLL" Alias "BMAPISendMail" (ByVal
Session&, ByVal UIParam&, Message As MAPIMessage, Recipient() As MapiRecip,
File() As MapiFile, ByVal flags&, ByVal Reserved&) As Long

Global Const SUCCESS_SUCCESS = 0
Global Const MAPI_TO = 1
Global Const MAPI_CC = 2
Global Const MAPI_CCO = 3
Global Const MAPI_LOGON_UI = &H1
Global Const MAPI_DIALOG = &H8

Function SendMail(sSubject As String, sTo As String, sCC As String, sCCO As
String, sAttach As String, sMessage As String, Optional sImmediateSend As
Boolean = True) As Long

Dim MAPI_Message As MAPIMessage
Dim I As Integer
Dim cTo As Integer
Dim cCC As Integer
Dim cCCO As Integer
Dim cAttach As Integer
Dim Dialogue As MAPIMessage

cTo = CountWords(sTo, ";")
cCC = CountWords(sCC, ";")
cCCO = CountWords(sCCO, ";")
cAttach = CountWords(sAttach, ";")

ReDim rTo(0 To cTo) As String
ReDim RCC(0 To cCC) As String
ReDim rCCO(0 To cCCO) As String
ReDim rAttach(0 To cAttach) As String

ParseWords rTo(), sTo, ";"
ParseWords RCC(), sCC, ";"
ParseWords rCCO(), sCCO, ";"
ParseWords rAttach(), sAttach, ";"

ReDim MAPI_Recip(0 To cTo + cCC + cCCO - 1) As MapiRecip

For I = 0 To cTo - 1
MAPI_Recip(I).Name = rTo(I)
MAPI_Recip(I).RecipClass = MAPI_TO
Next I

For I = 0 To cCC - 1
MAPI_Recip(cTo + I).Name = RCC(I)
MAPI_Recip(cTo + I).RecipClass = MAPI_CC
Next I

For I = 0 To cCCO - 1
MAPI_Recip(cTo + cCC + I).Name = rCCO(I)
MAPI_Recip(cTo + cCC + I).RecipClass = MAPI_CCO
Next I

ReDim MAPI_File(0 To cAttach) As MapiFile

MAPI_Message.FileCount = cAttach

For I = 0 To cAttach - 1
MAPI_File(I).Position = -1
MAPI_File(I).PathName = rAttach(I)
Next I

MAPI_Message.Subject = sSubject
MAPI_Message.NoteText = sMessage
MAPI_Message.RecipCount = cTo + cCC + cCCO

Dialogue.flags = MAPI_LOGON_UI + MAPI_DIALOG

'SendMail = MAPISendMail(0&, 0&, MAPI_Message, MAPI_Recip(), MAPI_File(),
Dialogue.flags, 0) '21/02/2007
SendMail = MAPISendMail(0&, 0&, MAPI_Message, MAPI_Recip(), MAPI_File(),
Dialogue.flags, 0&)
If SendMail Then MsgBox " Email non creata ", 48, "MODULO MAPI"
VariabileByte = SendMail

End Function

Function CountWords(ByVal sSource As String, ByVal sDelim As String) As
Integer

Dim iDelimPos As Integer
Dim iCount As Integer

If sSource = "" Then
CountWords = 0
Else
iDelimPos = InStr(1, sSource, sDelim)
Do Until iDelimPos = 0
iCount = iCount + 1
iDelimPos = InStr(iDelimPos + 1, sSource, sDelim)
Loop
CountWords = iCount + IIf(Right(sSource, 1) = sDelim, 0, 1)
End If
End Function

Function GetWords(sSource As String, ByVal sDelim As String) As String

Dim iDelimPos As Integer
iDelimPos = InStr(1, sSource, sDelim)
If (iDelimPos = 0) Then
GetWords = Trim$(sSource)
sSource = ""
Else
GetWords = Trim$(Left$(sSource, iDelimPos - 1))
sSource = Mid$(sSource, iDelimPos + 1)
End If
End Function

Sub ParseWords(mArray() As String, ByVal sTokens As String, ByVal sDelim As
String)
Dim I As Integer
For I = LBound(mArray) To UBound(mArray)
mArray(I) = GetWords(sTokens, sDelim)
Next I
End Sub


Cristian

unread,
Jun 18, 2011, 2:40:18 AM6/18/11
to
Hai ragione Karl, ho fatto un'altra dimenticanza.....
l'errore che mi da è il seguente:
Mi si apre la routine e viene selezionato il seguente comando: Dim NewMail
As MailItem

il msg d'errore è:
Errore di compilazione:
Tipo definito dall'utente non definito

ho provato ad abilitare il riferimento a Outlook nel menù Strumenti -
Riferimenti, ma il riferimento è disabilitato.
Grazie
Ciao
Chita


"Karl Donaubauer" <NoS...@donkarl.com> ha scritto nel messaggio
news:9621jg...@mid.individual.net...

> > ...dimenticavo che l'applicazione è


> > sviluppata con A97 pertanto il codice sotto non mi funziona...
>
> Adesso hai dimenticato un'altra piccolezza:
>
> "non mi funziona" si esprime come?
> Cosa succede o non succede, numero e messaggio di errore?
>
> Puo darsi che non hai attivato il riferimento a Outlook

> nel menù Strumenti - Riferimenti?
>
> > Quindi chiedo se è possibile inviare la mail utilizzando outlook
> > 2003 con A97?
> > ...
>
> Il codice è identico.

Bruno Campanini

unread,
Jun 18, 2011, 3:34:54 AM6/18/11
to
Cristian on 18-06-11 wrote:

> Hai ragione Karl, ho fatto un'altra dimenticanza.....
> l'errore che mi da è il seguente:
> Mi si apre la routine e viene selezionato il seguente comando: Dim NewMail
> As MailItem
>
> il msg d'errore è:
> Errore di compilazione:
> Tipo definito dall'utente non definito
>
> ho provato ad abilitare il riferimento a Outlook nel menù Strumenti -
> Riferimenti, ma il riferimento è disabilitato.

Se il riferimento ad Outlook non è attivato la procedura non può
funzionare.
Da te tale riferimento non è attivabile: solo lui o anche altri?

Bruno


Karl Donaubauer

unread,
Jun 18, 2011, 4:28:19 AM6/18/11
to
Cristian wrote:
>>> "Bruno Campanini ha scritto:
>>>> ...
>>>> Dim NewMail As MailItem, AttachArray(1 To 2) As String, i As
>>>> Integer
>>>>
>>>> Set NewMail =
>>>> CreateObject("Outlook.Application").CreateItem(olMailItem)
>>>> AttachArray(1) = "C:\aa1.txt"
>>>> AttachArray(2) = "C:\aa2.txt"
>>>>
>>>> With NewMail
>>>> .To = [eMailAddress]
>>>> .Subject = [eMailSubject]
>>>> .Body = [eMailMessage]
>>>> .CC = "brun...@libero.it;cmp...@gmail.com"
>>>> For i = 1 To 2
>>>> .Attachments.Add AttachArray(i)
>>>> Next
>>>> .Send
>>>> End With
> ...
> l'errore che mi da ᅵ il seguente:

> Mi si apre la routine e viene selezionato il seguente comando:
> Dim NewMail As MailItem
>
> il msg d'errore ᅵ:

> Errore di compilazione:
> Tipo definito dall'utente non definito
>
> ho provato ad abilitare il riferimento a Outlook nel menᅵ
> Strumenti - Riferimenti, ma il riferimento ᅵ disabilitato.

Non ᅵ normale, ma Bruno ha giᅵ chiesto dettagli.

In alternativa puoi provarlo con Late Binding:

Dim olApp As Object
Dim olMail As Object
Dim strAttach(1 To 2) As String
Dim i As Integer

Set olApp = CreateObject("Outlook.Application")
Set olMail = olApp.CreateItem(0)


AttachArray(1) = "C:\aa1.txt"
AttachArray(2) = "C:\aa2.txt"

With NewMail
.To = [eMailAddress]
.Subject = [eMailSubject]
.Body = [eMailMessage]
.CC = "brun...@libero.it;cmp...@gmail.com"
For i = 1 To 2

.Attachments.Add strAttach(i)
Next
.Send
End With

Cristian

unread,
Jun 18, 2011, 5:40:33 AM6/18/11
to
Sono andato a vedere su un pc in cui non � installato outlook 2003.
In questo per� vedo il riferimento, ma non vedo il riferimento ad outlook.
(forse perch� manca l'installazione di outlook 2003??)
Per abilitare i riferimenti sugli altri pc??? devo reinstallare A97 e
abilitare alcuni strumenti ??

Intanto provo a vedere se funziona il suggerimento di Karl dato poco fa!

Ciao
Chita

"Bruno Campanini" <bruno...@libero.it> ha scritto nel messaggio
news:4dfc5522$0$15662$4faf...@reader2.news.tin.it...


> Cristian on 18-06-11 wrote:
>
> > Hai ragione Karl, ho fatto un'altra dimenticanza.....

> > l'errore che mi da � il seguente:


> > Mi si apre la routine e viene selezionato il seguente comando: Dim
NewMail
> > As MailItem
> >

> > il msg d'errore �:


> > Errore di compilazione:
> > Tipo definito dall'utente non definito
> >

> > ho provato ad abilitare il riferimento a Outlook nel men� Strumenti -
> > Riferimenti, ma il riferimento � disabilitato.
>
> Se il riferimento ad Outlook non � attivato la procedura non pu�
> funzionare.
> Da te tale riferimento non � attivabile: solo lui o anche altri?
>
> Bruno
>
>


Antonio Biso

unread,
Jun 18, 2011, 9:29:59 AM6/18/11
to

"Cristian" <came...@tin.it> ha scritto nel messaggio
news:4dfc71cb$0$15660$4faf...@reader2.news.tin.it...

> Sono andato a vedere su un pc in cui non � installato outlook 2003.

Prova a vederlo su un PC dove si scrive correttamente DOPO il quoting...

Antonio


Cristian

unread,
Jun 19, 2011, 7:42:44 AM6/19/11
to
Ok, fatto ho attivato quanto mi diceva Bruno... e funziona!
Chiedo un'ultima cosa,
se il programma di outlook 2003 � chiuso, la posta viene inviata solo
all'apertura!
Nel codice precedente, outlook express, l'invio avveniva a prescindere se il
programma era aperto o chiuso!

Ho provato e gi� verificato nelle opzioni di outlook 2003 ma tutti i
tentativi sono andati vani...
Mi confermate che � cos�???Bisogna per forza aprire il programma??

Grazie
Ciao
Chita


"Antonio Biso" <ab...@libero.it> ha scritto nel messaggio
news:iti98n$gt0$1...@speranza.aioe.org...

Antonio Biso

unread,
Jun 19, 2011, 5:30:12 PM6/19/11
to

"Cristian" <came...@tin.it> ha scritto nel messaggio
news:4dfddff0$0$15672$4faf...@reader2.news.tin.it...

> Ok, fatto ho attivato quanto mi diceva Bruno... e funziona!
> Chiedo un'ultima cosa,

Sempre DOPO il quoting

e 2

Antonio


Cristian

unread,
Jun 20, 2011, 6:01:32 AM6/20/11
to
Scusa la mia ignoranza ma non ho capito cosa vuol dire: ....dopo il
quoting!

inoltre cosi come stanno le cose(con la speranza di capire il quoting)
....con outlook express l'invio era pi� veloce e veniva specificato con una
piccola maschera ....a chi veniva inviata la mail e l'oggetto!

Anticipatamente ringrazio
Ciao
Chita

"Antonio Biso" <ab...@libero.it> ha scritto nel messaggio
news:itlpp2$se7$1...@speranza.aioe.org...

Alessandro Cara

unread,
Jun 20, 2011, 7:54:43 AM6/20/11
to
Il 20/06/2011 12.01, Cristian ha scritto:
> Scusa la mia ignoranza ma non ho capito cosa vuol dire: ....dopo il
> quoting!

Questo! Io ho scritto dopo la tua citazione (i.e. quote!)

>
> inoltre cosi come stanno le cose(con la speranza di capire il quoting)

> ....con outlook express l'invio era piᅵ veloce e veniva specificato con una


> piccola maschera ....a chi veniva inviata la mail e l'oggetto!

E comunque non ho compreso questa tua esigenza. C'e' qualche particolare
"feature" di outlook 2003 che ti interessa?
Io, per esempio, per inviare email non uso nessun prodotto intermedio
(uso la libreria CDO, altri, la maggioranza qui dentro, usa MAPI -credo-).
Se non ricordo male il sistema (i.e. access) usa il programma di posta
"predefinito".
Cosa succede se poi vai su una stazione che non ha, o ne ha uno diverso,
dal mail sender da te scelto (ad es. ThunderBird)?
Rispetto ai tempi di esecuzione non credo che quattro istruzioni cambino
la vita a meno delle diverse "performances" del prodotto sender.
express e' un prodotto "piu' leggero", probabilmente in prima
attivazione e' piu' rapido del "non" express, e dovrebbe dirlo la parola
stessa ;-{)


--

ac (x=y-1)

Cristian

unread,
Jun 20, 2011, 10:00:02 AM6/20/11
to

>E comunque non ho compreso questa tua esigenza. C'e' qualche particolare
> "feature" di outlook 2003 che ti interessa?
nessuna "feature" di outlook 2003 che m'interessa, continuavo anche con
express.....ma sto pensando di convertire il mio db quindi volevo fare un
passo alla volta, spostare l'invio delle mail da express a outlook 2003, per
continuare a lavorare come prima, poi passer� alla vera conversione....

> Cosa succede se poi vai su una stazione che non ha, o ne ha uno diverso,
> dal mail sender da te scelto (ad es. ThunderBird)?

hai ragione, mi limito a far usare outlook 2003 (pi� comune)


In ogni caso ricapitolo:
il codice di Bruno � ok dopo aver attivato i riferimenti.

pertanto ora ho il problema che l'invio avviene solo se apro il programma!
Sono un po testardo e voglio capire bene....come fare!

Private Sub SendMail_Click()
' Access 2003, Outlook 2003, References:
' Visual Basic for Applications
' Microsoft Access 11.0 Object Library
' Microsoft Outlook 11.0 Object Library
'
Dim NewMail As MailItem, AttachArray(1 To 2) As String, i As Integer

Set NewMail =
CreateObject("Outlook.Application").CreateItem(olMailItem)
AttachArray(1) = "C:\aa1.txt"
AttachArray(2) = "C:\aa2.txt"

With NewMail
.To = [eMailAddress]
.Subject = [eMailSubject]
.Body = [eMailMessage]
.CC = "brun...@libero.it;cmp...@gmail.com"
For i = 1 To 2
.Attachments.Add AttachArray(i)
Next
.Send
End With

End Sub

Ringrazio
Ciao
Chita


"Alessandro Cara" <alessan...@ay-1anetwork.it> ha scritto nel messaggio
news:kyGLp.39045$GZ3....@tornado.fastwebnet.it...


> Il 20/06/2011 12.01, Cristian ha scritto:
>> Scusa la mia ignoranza ma non ho capito cosa vuol dire: ....dopo il
>> quoting!
>
> Questo! Io ho scritto dopo la tua citazione (i.e. quote!)
>
>>
>> inoltre cosi come stanno le cose(con la speranza di capire il quoting)

>> ....con outlook express l'invio era pi� veloce e veniva specificato con

Antonio Biso

unread,
Jun 20, 2011, 12:24:52 PM6/20/11
to

"Cristian" <came...@tin.it> ha scritto nel messaggio
news:4dff5263$0$44199$4faf...@reader1.news.tin.it...

>
>>E comunque non ho compreso questa tua esigenza. C'e' qualche particolare
>> "feature" di outlook 2003 che ti interessa?
> nessuna "feature" di outlook 2003 che m'interessa, continuavo anche con

> "Alessandro Cara" <alessan...@ay-1anetwork.it> ha scritto nel

> messaggio news:kyGLp.39045$GZ3....@tornado.fastwebnet.it...
>> Il 20/06/2011 12.01, Cristian ha scritto:
>>> Scusa la mia ignoranza ma non ho capito cosa vuol dire: ....dopo il
>>> quoting!
>>
>> Questo! Io ho scritto dopo la tua citazione (i.e. quote!)
>>


Groan!!!

come il tek


Antonio


Cristian

unread,
Jun 20, 2011, 5:43:54 PM6/20/11
to
Ora ho il problema che l'invio avviene solo se apro il programma!

Ciao
Chita

Bruno Campanini

unread,
Jun 21, 2011, 7:01:58 AM6/21/11
to
Cristian on 20-06-11 wrote:

> Ora ho il problema che l'invio avviene solo se apro il programma!
>
> Ciao
> Chita

Prima esponi tutto o parte significativa del messaggio a cui rispondi,
poi fai seguire la tua risposta.
ᅵ questo che ti stava dicendo Antionio Biso.

Allora, tenendo comunque presente che non si puᅵ aver tutto dalla vita:
=======================================


Private Sub SendMail_Click()
' Access 2003, Outlook 2003, References:
' Visual Basic for Applications
' Microsoft Access 11.0 Object Library
' Microsoft Outlook 11.0 Object Library
'

Dim OL As Object, NewMail As MailItem, AttachArray(1 To 2) As String, i
As Integer

' Indicare l'eseguibile di Outlook
Application.FollowHyperlink "C:\Microsoft Office\Office14\Outlook.exe"

Set OL = CreateObject("Outlook.Application")

Set NewMail = OL.CreateItem(olMailItem)


AttachArray(1) = "C:\aa1.txt"
AttachArray(2) = "C:\aa2.txt"

With NewMail
.To = [eMailAddress]
.Subject = [eMailSubject]
.Body = [eMailMessage]
.CC = "brun...@libero.it;cmp...@gmail.com"
For i = 1 To 2
.Attachments.Add AttachArray(i)
Next
.Send
End With

OL.Application.Quit

End Sub
==============================================

Bruno


Antonio Biso

unread,
Jun 21, 2011, 7:07:09 AM6/21/11
to

"Bruno Campanini" <bruno...@libero.it> ha scritto nel messaggio
news:4e007a2f$0$44201$4faf...@reader1.news.tin.it...

> Cristian on 20-06-11 wrote:
>
>> Ora ho il problema che l'invio avviene solo se apro il programma!
>>
>> Ciao
>> Chita
>
> Prima esponi tutto o parte significativa del messaggio a cui rispondi,
> poi fai seguire la tua risposta.
> � questo che ti stava dicendo Antionio Biso.
>
> Allora, tenendo comunque presente che non si pu� aver tutto dalla vita:

Bruno, tenendo conto che io per un lavoro simile utilizzavo il file snp di
access 2003, ma che non tutti riescono a vederlo se non hanno installato il
viewer e soprattutto con vista o 7 ci sono proprio problemi di
compatibilit�, come fare per inviare in automatico un report come allegato
PDF e non SNP?
Se serve qualcosa di esterno deve essere possibile darlo agli utenti finali
con una installazione semplice

Grazie

Antonio


Bruno Campanini

unread,
Jun 21, 2011, 7:31:58 AM6/21/11
to
Antonio Biso on 21-06-11 wrote:
> "Bruno Campanini" <bruno...@libero.it> ha scritto nel messaggio
> news:4e007a2f$0$44201$4faf...@reader1.news.tin.it...
>> Cristian on 20-06-11 wrote:
>>
>>> Ora ho il problema che l'invio avviene solo se apro il programma!
>>>
>>> Ciao
>>> Chita
>>
>> Prima esponi tutto o parte significativa del messaggio a cui rispondi,
>> poi fai seguire la tua risposta.
>> ᅵ questo che ti stava dicendo Antionio Biso.
>>
>> Allora, tenendo comunque presente che non si puᅵ aver tutto dalla vita:

>
> Bruno, tenendo conto che io per un lavoro simile utilizzavo il file snp di
> access 2003, ma che non tutti riescono a vederlo se non hanno installato il
> viewer e soprattutto con vista o 7 ci sono proprio problemi di compatibilitᅵ,
> come fare per inviare in automatico un report come allegato PDF e non SNP?
> Se serve qualcosa di esterno deve essere possibile darlo agli utenti finali
> con una installazione semplice

Con Office 2010 ᅵ semplicissimo:
Apri il report in modalitᅵ Preview
Click (sul ribbon) in E-mail
Scegli PDF
Si apre Outlook per l'indirizzo etc.

Per automatizzare il tutto... non l'ho mai fatto!
Provo a darci un'occhiata.

Bruno


Antonio Biso

unread,
Jun 21, 2011, 7:52:07 AM6/21/11
to
"Bruno Campanini" <bruno...@libero.it> ha scritto nel messaggio
news:4e008136$0$44200$4faf...@reader1.news.tin.it...

> Antonio Biso on 21-06-11 wrote:
>> "Bruno Campanini" <bruno...@libero.it> ha scritto nel messaggio
>> news:4e007a2f$0$44201$4faf...@reader1.news.tin.it...
>>> Cristian on 20-06-11 wrote:
>>>
>>>> Ora ho il problema che l'invio avviene solo se apro il programma!
>>>>
>>>> Ciao
>>>> Chita
>>>
>>> Prima esponi tutto o parte significativa del messaggio a cui rispondi,
>>> poi fai seguire la tua risposta.
>>> � questo che ti stava dicendo Antionio Biso.
>>>
>>> Allora, tenendo comunque presente che non si pu� aver tutto dalla vita:

>>
>> Bruno, tenendo conto che io per un lavoro simile utilizzavo il file snp
>> di access 2003, ma che non tutti riescono a vederlo se non hanno
>> installato il viewer e soprattutto con vista o 7 ci sono proprio problemi
>> di compatibilit�, come fare per inviare in automatico un report come
>> allegato PDF e non SNP?
>> Se serve qualcosa di esterno deve essere possibile darlo agli utenti
>> finali con una installazione semplice
>
> Con Office 2010 � semplicissimo:
> Apri il report in modalit� Preview

> Click (sul ribbon) in E-mail
> Scegli PDF
> Si apre Outlook per l'indirizzo etc.
>
> Per automatizzare il tutto... non l'ho mai fatto!

Premetto che � escluso il 2010
e cmq deve essere automatizzato perch� il tutto � all'interno di un ciclo
che invia mail a n indirizzi salvati in rubrica ma ognuno con i dati del
record in corso

Antonio


Bruno Campanini

unread,
Jun 21, 2011, 8:25:39 AM6/21/11
to
Antonio Biso on 21-06-11 wrote:

> Premetto che ᅵ escluso il 2010
> e cmq deve essere automatizzato perchᅵ il tutto ᅵ all'interno di un ciclo che

> invia mail a n indirizzi salvati in rubrica ma ognuno con i dati del record
> in corso

Salvati in quale rubrica? in quella di Outlook?
E se sᅵ, a tutti ovvero secondo un filtro?
Con Office 2003?

Bruno


Antonio Biso

unread,
Jun 21, 2011, 9:08:54 AM6/21/11
to

"Bruno Campanini" <bruno...@libero.it> ha scritto nel messaggio
news:4e008dcc$0$15659$4faf...@reader2.news.tin.it...

> Antonio Biso on 21-06-11 wrote:
>
>> Premetto che � escluso il 2010
>> e cmq deve essere automatizzato perch� il tutto � all'interno di un ciclo
>> che invia mail a n indirizzi salvati in rubrica ma ognuno con i dati del
>> record in corso
>
> Salvati in quale rubrica? in quella di Outlook?
> E se s�, a tutti ovvero secondo un filtro?
> Con Office 2003?

no no, in una tabella access
outlook nel mio caso non c'entra nulla

Antonio


Bruno Campanini

unread,
Jun 21, 2011, 9:19:43 AM6/21/11
to
Antonio Biso on 21-06-11 wrote:

> no no, in una tabella access
> outlook nel mio caso non c'entra nulla

Questo funziona con Access/Outlook 2010.
Ora non ho tempo di provarlo con Access/Outlook 2003.
Dimmelo tu come va.

===========================================
Private Sub SendingMailFromTable_Click()
' References:
' Visual Basic for Applications
' Microsoft Outlook 14.0 Object Library
' Microsoft Office 14.0 Object Library
' Microsoft Office 14.0 Access database engine Object Library
' Microsoft Scripting Runtime
'
Dim NewMail As MailItem, S As String, i As Integer
Dim AttachmentArray(1 To 3) As String
Dim FSO As Object, TextStream As Object
Dim db As Database, RS As Recordset

Set db = CurrentDb
Set RS = db.OpenRecordset("t_Contacts", dbOpenDynaset)
' Table t_Contacts has 3 Fields:
' CompanyName, Attn, EmailAddress. All the Fields are Text(255).

' Some Attachments
AttachmentArray(1) = "C:\aa2.txt"
AttachmentArray(2) = "C:\aa3.txt"
AttachmentArray(3) = "C:\aa4.txt"

' C:\aa1.txt is your newsletter
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TextStream = FSO.OpenTextFile("C:\aa1.txt")
Do Until TextStream.AtEndOfStream
S = TextStream.ReadLine
Loop

Do Until RS.EOF


Set NewMail =
CreateObject("Outlook.Application").CreateItem(olMailItem)

With NewMail
.To = RS![eMailAddress] ' "aaaaa@aaa; bbbbb@bbb; ccccc@ccc"
'.CC = "ddddd@ddd; eeeee@eee"
'.BCC = "fffff@fff; ggggg@ggg"
.Subject = "My Special Subject"
.Body = RS![CompanyName] & vbCrLf & "Attn " & RS![Attn] &
vbCrLf & S
For i = 1 To 3
.Attachments.Add AttachmentArray(i)
Next
.Send
End With
Set NewMail = Nothing
RS.MoveNext
Loop


End Sub
=========================================

Bruno


0 new messages