我完全是Access的新手(有一些SQL服務器的經驗)。MS訪問日期觸發器模擬
我不確定它是否可能在MS Access 2010中: 如果對於table.dateField之一是今天或早些時候 - 需要發送有關該記錄的電子郵件。
廣泛的挖掘不會帶來任何結果,似乎不可行,但希望在這方面的羣體意見。 謝謝
我完全是Access的新手(有一些SQL服務器的經驗)。MS訪問日期觸發器模擬
我不確定它是否可能在MS Access 2010中: 如果對於table.dateField之一是今天或早些時候 - 需要發送有關該記錄的電子郵件。
廣泛的挖掘不會帶來任何結果,似乎不可行,但希望在這方面的羣體意見。 謝謝
如果你的意思是你需要在一張表上執行一個查詢操作,那麼這個查詢將管理髮送一封關於每個違規行的電子郵件的執行 - 那麼我認爲你不會有太多運氣;
您可以通過訪問打開電子郵件窗口,但不會自行發送電子郵件。
你在後端使用什麼?如果它很靈活,並且你使用SQL服務器作爲後端,那麼你可以使用實際的觸發器來調用存儲過程來發送所需的電子郵件。
除此之外,所有我能想到就做,會
希望這有助於
感謝您的回覆。我放棄了作爲後端訪問的想法,現在是MSSQL。問題 - 如何定義一個觸發器,一旦日期在表中的某個字段中的日期是今天或更少?謝謝! –
@DisplayName請注意,我在答案中提供的解決方案與使用Access數據庫時的SQL Server數據庫一樣好。你真正需要做的就是改變[連接字符串](http://www.connectionstrings.com/sql-server/)。 –
在Microsoft Access 應用沒有任何內置功能來自動掃描數據庫和發送基於記錄表中的狀態電子郵件。但是,這並不意味着這樣的功能對存儲在Access數據庫中的信息「不可行」。實際上,實現這樣的功能可能如此簡單:
以下VBScript代碼可以每天早上作爲Windows下的計劃任務運行(通過cscript.exe
)。它將掃描名爲[患者]的表格,並向每天有生日的每個人發送「生日快樂」消息。
Option Explicit
Dim con ' As ADODB.Connection
Dim rst ' As ADODB.Recordset
Dim msg ' As CDO.Message
Set con = CreateObject("ADODB.Connection") ' New ADODB.Connection
con.Open _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Users\Gord\Desktop\Database1.accdb;"
Set rst = CreateObject("ADODB.Recordset") ' New ADODB.Recordset
rst.Open _
"SELECT FirstName, Email " & _
"FROM Patients " & _
"WHERE Month(DOB) = Month(Date()) " & _
"AND Day(DOB) = Day(Date())", _
con
Do Until rst.EOF
Set msg = CreateObject("CDO.Message") ' New CDO.Message
msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.example.com"
msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
msg.Configuration.Fields.Update
msg.To = rst("Email").Value
msg.From = "[email protected]"
msg.Subject = "Happy Birthday!"
msg.TextBody = "Hi, " & rst("FirstName").Value & ". We hope you have a great birthday today!"
msg.Send
Set msg = Nothing
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
con.Close
Set con = Nothing
Access 2010中數據的宏具有[SendEmail](http://msdn.microsoft.com/en-us/library/office/ff196780%28v=office.14%29.aspx)宏操作。你嘗試過嗎? –
@GordThompson Tt不符合我的要求我的要求 - SendEmail將只對某些記錄的操作進行操作。我甚至需要在數據庫中沒有任何活動有一個觸發器,將通知該日期是今天和電子郵件必須發送不管...感謝評論,不幸的是,顯而易見的選擇不是我正在尋找。 –
好的,謝謝你的澄清。所以當你說「即使在數據庫中沒有任何活動」時,你的意思是這些電子郵件需要定期發送(即每天一次)*即使沒有人使用Access應用程序*(即電子郵件過程應該是完全獨立於用戶與之交互的任何前端代碼)? –