Newsgroup: it.comp.appl.access
Titolo: invio mail a elenco da query

E' possibile, in modo semplice magari con le sole macro, inviare una mail da 
un bottone di una maschera ad una serie di indirizzi risultanti da una 
query?
grz.
 


Ecco il codice da inserire "su click" di un pulsante
 
On Error GoTo myError
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSendTo As String
    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT TuoCampoEmail FROM TuaTabella" &
_
            " WHERE TuoCampoEmail Is Not Null", dbOpenDynaset)
    Do Until rs.EOF
        strSendTo = strSendTo & ";" & rs!TuoCampoEmail
        rs.MoveNext
    Loop
    strSendTo = Mid(strSendTo, 2)
    DoCmd.SendObject , , , strSendTo, , , , , True
 
myExit:
    If Not rs Is Nothing Then rs.Close: Set rs = Nothing
    Set db = Nothing
    Exit Sub
 
myError:
    Select Case Err.Number
        Case 9999
            'trap specific errors here
        Case Else
            MsgBox "Inconveniente: " & Err.Message & " " & Err.Number
            Resume myExit
    End Select

 
 
"FredBusca"  ha scritto nel messaggio 
news:ff092273-599f-4b9a...@h3g2000yqe.googlegroups.com...

mi dà un'errore sulla riga:


 MsgBox "Inconveniente: " & Err.Message & " " & Err.Number
 
Nel bellissimo codice ;-) di Fred devi sostituire
Err.Message
con
Err.Description
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 

"Karl Donaubauer"  ha scritto nel messaggio 
news:9o57lm...@mid.individual.net...

Ho corretto ma adesso l'errore è:
Inconveniente: Parametri insufficienti. Previsto 2.3061
 
 

           " WHERE TuoCampoEmail Is Not Null", dbOpenDynaset)
 
Direi che si tratta di un codice di esempio e devi sostituire
"TuoCampoEmail" e della "TuaTabella" (o query) con i nomi
che hai nel tuo database.


 
 
"Karl Donaubauer"  ha scritto nel messaggio 
news:9o591v...@mid.individual.net...

Si naturalmente questo l'ho fatto! (anzi credo anche ci sia un "underscore" 
di troppo nel codice postato)
ma comunque l'errore resta, anche dopo aver sostituito Err.Message con 
Err.Description
amenochč non abbia interpretato male:
TuoCampoEmail = il nome del campo della mia tabella che contiene gli 
indirizzi mail
TuaTabella = il nome della mia tabella che contiene gli indirizzi mail.
 
 
 
 
 

 TuaTabella = il nome della mia tabella che contiene gli indirizzi mail.
 
Invece di solo descriverlo... incolla il tuo codice.
Forse si vede il problema.


 
Invece di solo descriverlo... incolla il tuo codice.
Forse si vede il problema.
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
Ecco il codice che uso io:
 
Private Sub Comando15_Click()
On Error GoTo myError
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSendTo As String
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT E-MAIL FROM TBL_FAMIGLIE" & " WHERE E-MAIL 
Is Not Null", dbOpenDynaset)
Do Until rs.EOF
strSendTo = strSendTo & ";" & rs!E - MAIL
rs.MoveNext
Loop
strSendTo = Mid(strSendTo, 2)
DoCmd.SendObject , , , strSendTo, , , , , True
 
myExit:
If Not rs Is Nothing Then rs.Close: Set rs = Nothing
Set db = Nothing
Exit Sub
 
myError:
Select Case Err.Number
Case 9999
'trap specific errors here
Case Else
MsgBox "Inconveniente: " & Err.Description & " " & Err.Number
Resume myExit
End Select
 
End Sub
l'errore che mi viene restituito č:
"Inconveniente: Parametri insufficienti. Previsto 2.3061!"
 
 
 

 ...
 
Evita segni speciali come il meno nei nomi!
Altrimenti devi sempre racchiudere il nome
con parentesi quadre:
 
Set rs = db.OpenRecordset("SELECT [E-MAIL] FROM TBL_FAMIGLIE" & _
" WHERE [E-MAIL] Is Not Null", dbOpenDynaset)
...
strSendTo = strSendTo & ";" & rs![E - MAIL]
 
Vedi anche 
http://www.donkarl.com/it?FAQ1.5
.


 
 
"Karl Donaubauer"  ha scritto nel messaggio 
news:9o5c67...@mid.individual.net...

Funziona!!!!
grazie Karl & FredBusca per il codice
 
 
 
 

 grazie Karl & FredBusca per il codice
 
più che a me devi ringraziare karl che è l'autore della routine.