Newsgroup: it.comp.appl.access
Titolo: E-mail from Access

Ciao a tutti.
Premetto che ho dato un'occhiata al sito del Ng e non ho trovato la risposta
alla mia domanda che e' la seguente: ho scoperto come far aprire il mio
programma per la posta elettronica tramite un command button o una label in
una form di Access. Quello che mi si presenta davanti e' solo pero' il
"nuovo messaggio" senza l'indirizzo del destinatario. E' possibile
"recuperare" l'indirizzo da un campo della tavola del db? Sicuramente per
voi sara' molto facile ma io sono agli inizi e quindi vi prego di usare meno
jargon possibile nelle vostre risposte.
Grazie fin d'ora
Veronica
--
-------------------------------
All statements made by means of
email are at all times subject
to Alternative Travel Group's
Booking Terms and Conditions.
-------------------------------

 ha scritto nel messaggio
news:8bal3u$98t$1...@ayers.ftech.net...


 wrote in message
news:8balpg$2sq$1...@serv1.iunet.it...


 Grazie comunque.
Prova con Sendobject.
Ciao

 trova un tantino perso!
La sintassi è:
DoCmd.SendObject [tipooggetto][, nomeoggetto][, formatooutput][, a][, cc][,
ccn][, oggetto][, testomessaggio][, modificamessaggio][, filemodello]
L'esempio è:
DoCmd.SendObject acSendTable, "Impiegati", acFormatXLS, _
 "Nancy Davolio; Andrew Fuller", "Joan Weber", , _
 "Foglio di lavoro corrente degli impiegati", , False
Per il resto, consulta l'ottimo Help di Access, e ricordati che il motto è:
Aiutati che il NG ti aiuta! :)
Ciao

E un po lungo pero' funziona
L'ho trovata su di un sito dedicato ad access
http://www.mvps.org/access/
Ciao, Ricky
'**************** Usage Example Start ****************
Sub TestMAPIEmail()
Dim clMAPI As clsMAPI
    Set clMAPI = New clsMAPIEmail
    With clMAPI
        .MAPILogon
        .MAPIAddMessage
        .MAPISetMessageBody = "Test Message"
        .MAPISetMessageSubject = "Some Test"
        .MAPIAddRecipient stPerson:="
das...@hotmail.com
", _
                                    intAddressType:=1         'To
        .MAPIAddRecipient stPerson:="Dev Ashish", _
                                    intAddressType:=2         'cc
        .MAPIAddRecipient stPerson:="
smtp:das...@hotmail.com
", _
                                    intAddressType:=3         'bcc
        .MAPIAddAttachment "C:\temp\Readme.doc", "Jet Readme"
        .MAPIAddAttachment stFile:="C:\config.sys"
        .MAPIUpdateMessage
        .MAPISendMessage boolSaveCopy:=False
        .MAPILogoff
    End With
End Sub
'**************** Usage Example End ****************
'**************** Class Start ***********************
'
Option Compare Database
Option Explicit
Private mobjSession As MAPI.Session
Private mobjMessage As Message
Private mboolErr As Boolean
Private mstStatus As String
Private mobjNewMessage As Message
Private Const mcERR_DOH = vbObjectError + 10000
Private Const mcERR_DECIMAL = 261144    'low word order +1000
Public Sub MAPIAddMessage()
    With mobjSession
        Set mobjNewMessage = .Outbox.Messages.Add
    End With
End Sub
Public Sub MAPIUpdateMessage()
    mobjNewMessage.Update
End Sub
Private Sub Class_Initialize()
    mboolErr = False
End Sub
Private Sub Class_Terminate()
    On Error Resume Next
    Set mobjMessage = Nothing
    mobjSession.Logoff
    Set mobjSession = Nothing
End Sub
Public Property Let MAPISetMessageBody(stBodyText As String)
    If Len(stBodyText) > 0 Then mobjNewMessage.Text = stBodyText
End Property
Public Property Let MAPISetMessageSubject(stSubject As String)
    If Len(stSubject) > 0 Then mobjNewMessage.Subject = stSubject
End Property
Public Property Get MAPIIsError() As Boolean
    MAPIIsError = mboolErr
End Property
Public Property Get MAPIRecipientCount() As Integer
    MAPIRecipientCount = mobjNewMessage.Recipients.Count
End Property
Public Sub MAPIAddAttachment(stFile As String, _
                        Optional stLabel As Variant)
Dim objAttachment As Attachment
Dim stMsg As String
    On Error GoTo Error_MAPIAddAttachment
    If mboolErr Then Err.Raise mcERR_DOH
    If Len(Dir(stFile)) = 0 Then Err.Raise mcERR_DOH + 10
    mstStatus = SysCmd(acSysCmdSetStatus, "Adding Attachments...")
    If IsMissing(stLabel) Then stLabel = CStr(stFile)
    With mobjNewMessage
        .Text = " " & mobjNewMessage.Text
        Set objAttachment = .Attachments.Add
        With objAttachment
            .Position = 0
            .Name = stLabel
            'no need to link a file me thinks
            .Type = CdoFileData
            .ReadFromFile stFile
        End With
        .Update
    End With
Exit_MAPIAddAttachment:
    Set objAttachment = Nothing
    Exit Sub
Error_MAPIAddAttachment:
    mboolErr = True
    If Err = mcERR_DOH + 10 Then
        stMsg = "Couldn't locate the file " & vbCrLf
        stMsg = stMsg & "'" & stFile & "'." & vbCrLf
        stMsg = stMsg & "Please check the file name and path and try again."
        MsgBox stMsg, vbExclamation + vbOKOnly, "File Not Found"
    ElseIf Err <> mcERR_DOH Then
        MsgBox "Error " & Err.Number & vbCrLf & Err.Description
    End If
    Resume Exit_MAPIAddAttachment
End Sub
Public Sub MAPIAddRecipient(stPerson As String, intAddressType As Integer)
Dim objNewRecipient As Recipient 'local
    On Error GoTo Error_MAPIAddRecipient
    mstStatus = SysCmd(acSysCmdSetStatus, "Adding Recipients...")
    If mboolErr Then Err.Raise mcERR_DOH
    'If there's no SMTP present in the stPerson var, then
    'we have to use Name, else Address
    With mobjNewMessage
        If InStr(1, stPerson, "SMTP:") > 0 Then
            Set objNewRecipient = .Recipients.Add(Address:=stPerson, _
                                                Type:=intAddressType)
        Else
            Set objNewRecipient = .Recipients.Add(Name:=stPerson, _
                                                Type:=intAddressType)
        End If
        objNewRecipient.Resolve
    End With
Exit_MAPIAddRecipient:
    Set objNewRecipient = Nothing
    Exit Sub
Error_MAPIAddRecipient:
    mboolErr = True
    Resume Exit_MAPIAddRecipient
End Sub
Public Sub MAPISendMessage(Optional boolSaveCopy As Variant, _
                            Optional boolShowDialog As Variant)
    mstStatus = SysCmd(acSysCmdSetStatus, "Sending message...")
    If IsMissing(boolSaveCopy) Then
        boolSaveCopy = True
    End If
    If IsMissing(boolShowDialog) Then
        boolShowDialog = False
    End If
    mobjNewMessage.Send savecopy:=boolSaveCopy, showdialog:=boolShowDialog
End Sub
Public Sub MAPILogon()
On Error GoTo err_sMAPILogon
Const cERROR_USERCANCEL = -
2147221229
    mstStatus = SysCmd(acSysCmdSetStatus, "Login....")
    Set mobjSession = CreateObject("MAPI.Session")
    mobjSession.Logon
exit_sMAPILogon:
    Exit Sub
err_sMAPILogon:
    mboolErr = True
    If Err = CdoE_LOGON_FAILED - mcERR_DECIMAL Then
        MsgBox "Logon Failed", vbCritical + vbOKOnly, "Error"
    ElseIf Err = cERROR_USERCANCEL Then
        MsgBox "Aborting since you pressed cancel.", _
                vbOKOnly + vbInformation, "Operatoin Cancelled!"
    Else
        MsgBox "Error number " & Err - mcERR_DECIMAL & " description. " _
                & Error$(Err)
    End If
    Resume exit_sMAPILogon
End Sub
Public Sub MAPILogoff()
On Error GoTo err_sMAPILogoff
    mstStatus = SysCmd(acSysCmdSetStatus, "Logging off...")
    mobjSession.Logoff
    Set mobjNewMessage = Nothing
    Set mobjSession = Nothing
    mstStatus = SysCmd(acSysCmdClearStatus)
exit_sMAPILogoff:
    Exit Sub
err_sMAPILogoff:
    Resume exit_sMAPILogoff
End Sub
'**************** Class End  ***********************


 wrote in message
news:8baumf$5ml$1...@serv1.iunet.it...


Gia', sembra abbastanza lunghetto......sperimento e vi faccio sape'
--
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/

trova un tantino perso!
e cosa vorresti fare, sostituire l'esperienza con qualche riga di
messaggi?
se ti rendi conto che l'esperienza serve, fattela.  non esistono
scorciatoie.


Dimmi, ti ha per caso punto una vipera o sei cosi' di natura?


Tutto quello che ho imparato fin'ora, l'ho imparato dai codici di esempio e
dai miei vari esperimenti. Non mi sembrava di avere fatto una richiesta poi
cosi' assurda chiedendo una mano e magari un paio di righe di codici come
esempio......boh

Veronica
Premesso che:
Stai utilizzando Office 2000 con Outlok2000 e Access 2000 installati
correttamente.
Apri Access (...)
Apri il Db che ti interessa (...)
Premi ALT+F11. Ora sei nell'ambiente VBA.
Nel menù "strumenti" seleziona "riferimenti" e poi clicca su
"Microsoft Office 9.0 Object Library"
Torna alla finestra del DataBase. 
La situazione.
1)Hai una tabella con un elenco di Tizi. Per ogni tizio hai un campo
denominato "Email" dove qualcuno ha scritto l'indirizzo di posta del
Tizio. (e già mi sto incasinando....)
2)Hai creato una maschera collegata a questa tabella dove ci sono i
controlli di testo che mostrano il nome, l'indirizzo,... e l'imail del
tizio.
3) Il controllo che mostra il nome si chiama "ContactName", quello che
mostra l'indirizzo di posta si chiama "email"
OK?
Crea un nuovo pulsante. Sull'evento click mettici:
Dim Out As outlook.Application
Dim Mex As outlook.MailItem
Dim Address As String
Set Out = New outlook.Application
Set Mex = Out.CreateItem(olMailItem)
Address = Me.email
 
With Mex
  .Recipients.Add Address
  .Subject = "Et voilà"
  .Body = ("Caro " & Me.ContactName & vbNewLine & vbNewLine)
  .Display
End With
Set Out = Nothing
Salva. Vai alla maschera. Clicca sul pulsante.
Ciao
Basjlico

esempio......boh
tu hai chiesto consigli facili per fare cose difficili.  ti rendi
conto che cio' non e' possibile.
le cose che vuoi fare tu forse non si possono fare con due righe di
codice.  se non sai andare oltre le due righe di codice (ma ne dubito,
chiunque si applichi ne e' in grado) lascia fare il lavoro a chi e'
piu' in gamba di te.  oppure datti da fare e diventa piu' in gamba di
quanto sei adesso.  ma di sicuro scordati di affrontare problemi
difficili con le tue sole cognizioni di adesso.


>Dimmi, ti ha per caso punto una vipera o sei cosi' di natura?
le vipere che mi hanno morso si sono rotte i denti e sono morte
avvelenate.


avvelenate.
E dove t'avrebbero morso 'ste "vipere"?:-))))
Saluti.
Luciano

               Attenzione all'anti-spam XXX
Il pubblico utilizzo di un qualunque sistema musicale portatile e' un
indicatore virtualmente garantito di tendenze sociopatiche.
		-- Zoso

E dove t'avrebbero morso 'ste "vipere"?:-))))
domandalo al dottore... :-)
