是否有可能獲取使用更新查詢更新的記錄報告,而不使用記錄集?如何顯示更新查詢更新了多少條記錄?
例:
sqltext = update table employees set bonus = 0 where salary > 50000
DoCmd.RunSQL sqltext
在此之後查詢運行,是有可能得到對他們來說,執行此更新查詢員工的名字嗎?
是否有可能獲取使用更新查詢更新的記錄報告,而不使用記錄集?如何顯示更新查詢更新了多少條記錄?
例:
sqltext = update table employees set bonus = 0 where salary > 50000
DoCmd.RunSQL sqltext
在此之後查詢運行,是有可能得到對他們來說,執行此更新查詢員工的名字嗎?
這是從來沒有使用DoCmd.RunSQL
因爲它會產生一個提示(您必須關閉,如果你不希望它)是一個好主意,即使出現錯誤,它完成了更新,不報告錯誤。更好的是,執行相同的SQL函數來替代它:
Public Function SQLRun(strSQL As String) As Boolean
On Error GoTo errHandler
CurrentDB.Execute strSQL, dbFailOnError
SQLRun= True
exitRoutine:
Exit Function
errHandler:
MsgBox err.Number & ": " & err.Description, vbExclamation, "Error in SQLRun()"
Resume exitRoutine
End Function
一旦你放在這個公用模塊中,你可以很容易地做一個全局搜索和替換DoCmd.RunSQL
與SQLRun
來取代它。
編輯:此函數的另一個版本返回受影響的記錄數是here。
我目前沒有看到任何方式來獲取更新查詢後運行的信息,除非您有另一個區分字段(可能是更新的日期字段)。爲什麼不運行它的選擇查詢並從該數據運行報告,則運行更新查詢以更改「獎金」的值。
讓我知道這是否有幫助! JFV
我知道它的一個老問題,但沒有直接回答OP問題的答案(我通過Google Top 3的結果在嘗試記住語法時得到的) 如果使用Execute方法,您可以獲得記錄數直接影響:
sqltext = "update table employees set bonus = 0 where salary > 50000"
CurrentDb.Execute sqltext
AffectedRows = CurrentDb.RecordsAffected
'Optional Notification
MsgBox CStr(AffectedRows) & " records were affected by this SQL statement."
我不知道這個方法上有一定的紀錄的機會更新可能無法haapen,但他們可以通過選擇查詢 – tksy 2008-12-02 13:21:33