จริงๆ บน 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 = "xxx@hotmail.com;yyy@hotmail.com"
.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