จริงๆ บน Access สามารถทำได้ครับ
โดยมีขั้นตอนคร่าวๆ ดังนี้
- การยืนยันสิทธิ์ อาจจะทำเป็นให้มีช่องกรอก UserName, Password หรือ ตรวจสอบจากการ Login เข้ามาในโปรแกรมว่า User คนนี้ได้รับสิทธิ์นี้หรือไม่ และมี Email อะไร
- บน Access สามารถเขียน Code เพื่อส่งเมล์ผ่านโปรแกรม Outlook ได้ครับ สามารถศึกษาจากตัวอย่างเก่าๆ ของ อ. สุภาพ ไชยาได้ แต่ต้องไปปิดฟังค์ชั่นบางอย่างเกี่ยวกับ Security บน Outlook อีกที ไม่เช่นนั้นมันจะมีเมนู Popup ขึ้นถามทุกครั้งที่สั่งให้ส่งเมล์ แต่ถ้าเราไปปิดฟังค์ชั่นที่ว่า มันจะยิงเมล์ออกไปเลยครับ
อันนี้ตัวอย่างสั้นๆ ครับเป็น idea
Sub SenMail()  
Dim ol As Object  
Dim olMail As Object  
Dim strCC As String    
Set ol = CreateObject("Outlook.Application")  
Set olMail = ol.CreateItem(0)    
With olMail    
    .To = "
[email protected];
[email protected]"  
    .Attachments.Add "C:\FolderName\book1.xls"  
    .Subject = "หัวข้อของอีเมลล์ตรงนี้"  
    .Body = "ข้อความที่ต้องการจะส่งไปด้วย"  
    .Display  
    '.Send  
End With  
โดยต้องเขียนโปรแกรมวนลูปเพิ่มเติมเพื่อส่งเมล์หาคนที่เกี่ยวข้องที่กำหนดไว้
แนะว่าใช้คำสั่ง Do While
    Dim rst1, rst2, rst3, rst4, rst5, rst6 As DAO.Recordset
    Dim StrNewFolder, strFileName As String
    Dim vPackID, vCustID, lPO, vRoll, nEmail, lTxt As Long
    Dim vRollID, vLDNo, vEmail, vSubj As String
    Dim ol As Object
    Dim olMail As Object
    Dim strCC, vCustPO, vCust As String    
    Dim vRlID, vRllNo, vLnt, vWgh, vJbColr As String    
    Dim dbs As Database
    Set dbs = CurrentDb()
    Set rst6 = dbs.OpenRecordset("SELECT LDEmail.* FROM LDEmail INNER JOIN Customer ON LDEmail.CustID = Customer.CustID WHERE (((Customer.Customer)='" & vCust & "')) ORDER BY LDEmail.Email", dbOpenDynaset, dbSeeChanges)
    Do While Not rst6.EOF
        If nEmail = 1 Then
            vEmail = rst6!Email
        Else
            vEmail = vEmail & ";" & rst6!Email
        End If    
        nEmail = nEmail + 1
    rst6.MoveNext
    Loop
    rst6.Close
    Set rst6 = Nothing