locked
Access 2007 - Create email form to be sent via Lotus Notes RRS feed

  • Question

  • Hello all

     

    First , I am new to this forum and if I am not following any correct procedures, then please let me know.

     

    My problem is as follows:

     

    I am trying to create a form in Access 2007, layed out in the format of a new email memo. I then need the user to fill in the standard  like To,CC,BCC,Subject,Body,Add Attachment.

     

    I have now idea how to make this work in Access using VBA. I have found some sample code which I tried to adapt , but did not work at all. Also found a working example for a earleier version of access which was in French!! So that was no help at all.

     

    If anyone knows how to get this to work, then it will be the best thing since sliced bread!!

     

    Thanks in advance

    Wednesday, April 25, 2007 10:28 AM

All replies

  • This version work for me in Excel 2003 and 2007 with multipe attachments and sending report
    Public Sub LotusMail(Recipient As Variant, cc As Variant, Bcc As Variant, Subject As String, BodyText As String, Attachment As Variant, SaveIt As Boolean)  
    'This public sub will send a mail and attachment if neccessary to the recipient including the body text.  
     
    'Requires that notes client is installed on the system.  
    Dim objNotesSession As Object 
    Dim objNotesMailFile As Object 
    Dim objNotesDocument As Object 
    Dim objNotesField As Object 
     
    'Set up the objects required for Automation into lotus notes  
    Dim Maildb As Object 'The mail database  
    Dim UserName As String 'The current users notes name  
    Dim MailDbName As String 'THe current users notes mail database name  
    Dim MailDoc As Object 'The mail document itself  
    Dim AttachME As Object 'The attachment richtextfile object  
    Dim Session As Object 'The notes session  
    Dim EmbedObj As Object 'The embedded object (Attachment)  
    Dim MsgReport As String 
     
    'Start a session to notes  
    Set Session = CreateObject("Notes.NotesSession")  
     
    'Get the sessions username and then calculate the mail file name.  
    'You may or may not need this as for MailDBname with some systems you can pass an empty string  
    UserName = Session.UserName  
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf" 
     
    'Open the mail database in notes  
    Set Maildb = Session.GetDatabase("", MailDbName)  
    If Maildb.IsOpen = True Then 
    'Already open for mail  
    Else 
    Maildb.OPENMAIL  
    End If 
     
    'Set up the new mail document  
    Set MailDoc = Maildb.CreateDocument  
    MailDoc.Form = "Memo" 
    MailDoc.sendto = Recipient  
    MailDoc.CopyTo = cc  
    MailDoc.BlindCopyTo = Bcc  
    MailDoc.Subject = Subject  
     
    'Set up the embedded object and attachment and attach it  
    Set AttachME = MailDoc.CreateRichTextItem("Attachment")  
        For i = 0 To UBound(Attachment)  
            If Attachment(i) <> "" Then 
                Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment(i), "Attachment")  
            End If 
        Next i  
    'MailDoc.CreateRichTextItem ("Attachment")  
     
    MailDoc.Body = BodyText  
    MailDoc.SaveMessageOnSend = SaveIt  
     
     
     
    'Send the document  
    MailDoc.Send 0, Recipient  
     
    'Clean Up  
    Set Maildb = Nothing 
    Set MailDoc = Nothing 
    Set AttachME = Nothing 
    Set Session = Nothing 
    Set EmbedObj = Nothing 
     
    MsgReport = "Message has been Send to:" 
        For i = 0 To UBound(Recipient)  
            If Recipient(i) <> "" Then 
                MsgReport = MsgReport & vbCrLf & Recipient(i)  
                ElseGoTo LineCC  
            End If 
        Next i  
          
    LineCC:  
    If cc(0) <> "" Then 
        MsgReport = MsgReport & vbCrLf & "Cc:" 
        For i = 0 To UBound(cc)  
            If cc(i) <> "" Then 
                MsgReport = MsgReport & vbCrLf & cc(i)  
                ElseGoTo LineBCC  
            End If 
        Next i  
    End If 
     
    LineBCC:  
    If Bcc(0) <> "" Then 
        MsgReport = MsgReport & vbCrLf & "Bcc:" 
        For i = 0 To UBound(Bcc)  
            If Bcc(i) <> "" Then 
                MsgReport = MsgReport & vbCrLf & Bcc(i)  
                ElseGoTo LineMSG  
            End If 
        Next i  
    End If 
     
    LineMSG:  
     
    MsgBox MsgReport, vbInformation, "Louts Notes report" 
     
    End Sub 
    Wednesday, February 11, 2009 9:07 AM
  • This version work for me in Excel 2003 and 2007 with multipe attachments and sending report
    Public Sub LotusMail(Recipient As Variant, cc As Variant, Bcc As Variant, Subject As String, BodyText As String, Attachment As Variant, SaveIt As Boolean)  
    'This public sub will send a mail and attachment if neccessary to the recipient including the body text.  
     
    'Requires that notes client is installed on the system.  
    Dim objNotesSession As Object 
    Dim objNotesMailFile As Object 
    Dim objNotesDocument As Object 
    Dim objNotesField As Object 
     
    'Set up the objects required for Automation into lotus notes  
    Dim Maildb As Object 'The mail database  
    Dim UserName As String 'The current users notes name  
    Dim MailDbName As String 'THe current users notes mail database name  
    Dim MailDoc As Object 'The mail document itself  
    Dim AttachME As Object 'The attachment richtextfile object  
    Dim Session As Object 'The notes session  
    Dim EmbedObj As Object 'The embedded object (Attachment)  
    Dim MsgReport As String 
     
    'Start a session to notes  
    Set Session = CreateObject("Notes.NotesSession")  
     
    'Get the sessions username and then calculate the mail file name.  
    'You may or may not need this as for MailDBname with some systems you can pass an empty string  
    UserName = Session.UserName  
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf" 
     
    'Open the mail database in notes  
    Set Maildb = Session.GetDatabase("", MailDbName)  
    If Maildb.IsOpen = True Then 
    'Already open for mail  
    Else 
    Maildb.OPENMAIL  
    End If 
     
    'Set up the new mail document  
    Set MailDoc = Maildb.CreateDocument  
    MailDoc.Form = "Memo" 
    MailDoc.sendto = Recipient  
    MailDoc.CopyTo = cc  
    MailDoc.BlindCopyTo = Bcc  
    MailDoc.Subject = Subject  
     
    'Set up the embedded object and attachment and attach it  
    Set AttachME = MailDoc.CreateRichTextItem("Attachment")  
        For i = 0 To UBound(Attachment)  
            If Attachment(i) <> "" Then 
                Set EmbedObj = AttachME.EmbedObject(1454, "", Attachment(i), "Attachment")  
            End If 
        Next i  
    'MailDoc.CreateRichTextItem ("Attachment")  
     
    MailDoc.Body = BodyText  
    MailDoc.SaveMessageOnSend = SaveIt  
     
     
     
    'Send the document  
    MailDoc.Send 0, Recipient  
     
    'Clean Up  
    Set Maildb = Nothing 
    Set MailDoc = Nothing 
    Set AttachME = Nothing 
    Set Session = Nothing 
    Set EmbedObj = Nothing 
     
    MsgReport = "Message has been Send to:" 
        For i = 0 To UBound(Recipient)  
            If Recipient(i) <> "" Then 
                MsgReport = MsgReport & vbCrLf & Recipient(i)  
                ElseGoTo LineCC  
            End If 
        Next i  
          
    LineCC:  
    If cc(0) <> "" Then 
        MsgReport = MsgReport & vbCrLf & "Cc:" 
        For i = 0 To UBound(cc)  
            If cc(i) <> "" Then 
                MsgReport = MsgReport & vbCrLf & cc(i)  
                ElseGoTo LineBCC  
            End If 
        Next i  
    End If 
     
    LineBCC:  
    If Bcc(0) <> "" Then 
        MsgReport = MsgReport & vbCrLf & "Bcc:" 
        For i = 0 To UBound(Bcc)  
            If Bcc(i) <> "" Then 
                MsgReport = MsgReport & vbCrLf & Bcc(i)  
                ElseGoTo LineMSG  
            End If 
        Next i  
    End If 
     
    LineMSG:  
     
    MsgBox MsgReport, vbInformation, "Louts Notes report" 
     
    End Sub 
    Hi, thanks for your code, I also have a problem, how do I send mail via outlook 2003 with attachments.What I have done is create a "submit" button in my form.is it possible to send mail with attachment by click the button? thanks
    • Proposed as answer by LukeChungMVP Thursday, May 26, 2011 5:17 PM
    • Unproposed as answer by LukeChungMVP Thursday, May 26, 2011 5:18 PM
    Saturday, March 28, 2009 5:55 AM