文章編號: 208184 - 上次校閱: 2004年6月30日 - 版次: 2.0

ACC2000: 巨集指令查詢認可變更資料時取消

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

初學者: 需要知識的使用者介面在單一使用者電腦上。

當您執行動作查詢,並認可變更,按一下 [否] 提示回應時,所做的變更會仍要認可。

發生的原因

動作查詢 UseTransaction 屬性設定為 [否]。

解決方案

UseTransaction 屬性設定為 [是] 執行巨集指令查詢之前。

其他相關資訊

UseTransaction 屬性指定為單一交易是否在執行動作查詢。當 UseTransaction 屬性設定為 [是] 時,查詢結果會儲存在快取記憶體或暫存資料庫,並不會寫入至目前的資料庫直到您確認您想要認可變更。結果當 UseTransaction 屬性設定為 [否] 時,會立即寫入至目前的資料庫 ; 因為非包裝在單一交易中查詢執行得更快。不過,您不能取消已對查詢,變更的就算您按一下 [] 提示要認可變更時。

如果在 [設計檢視] 中開啟新的查詢的方式來建立一個查詢在 Microsoft Access 使用者介面中,UseTransaction 屬性的預設值會為 [是]。不過,使用資料存取物件 (DAO) 在 Visual Basic 中建立一個 QueryDef 應用程式程式碼時預設值的 UseTransaction 屬性是 [否]。

在下列範例中 CreateTransQuery,程序會建立其 UseTransaction 屬性設定為 [是] 的動作查詢:

注意: 本文中的範例程式碼會使用 Microsoft 資料存取物件。這個程式碼正常執行,您必須參考 Microsoft DAO 3.6 物件程式庫。以執行這項操作,按一下 引用項目 在 [工具] 功能表中 Visual Basic 編輯器] 中,請確定已選取 Microsoft DAO 3.6 物件程式庫] 核取方塊。

  1. 開啟範例資料庫 Northwind.mdb。
  2. 建立模組,如果它已經不存在,請宣告區段中輸入下面這一行:
    Option Explicit
    					
  3. 鍵入下列程序:
    Function CreateTransQuery()
    
       Dim db As DAO.Database
       Dim qd As DAO.QueryDef
       Dim prpUseTrans As Property
       Dim strSQLString As String
    
       strSQLString = "UPDATE Categories SET Categories.CategoryName"
       strSQLString = strSQLString & " = 'Drinks' WHERE"
       strSQLString = strSQLString & " Categories.CategoryID = 1;"
       Set db = CurrentDb
       Set qd = db.CreateQueryDef("qryUseTransTest", strSQLString)
       Set prpUseTrans = qd.CreateProperty("UseTransaction", dbBoolean, True)
       qd.Properties.Append prpUseTrans
    
    End Function
    					

重製行為的步驟

  1. 開啟範例資料庫 Northwind.mdb。
  2. 開啟 [客戶] 資料表並檢視第一筆記錄。它包含下列資料的附註:
          CustomerID:    CompanyName:
          -----------    --------------------
          ALFKI          Alfred's Futterkiste
    					
  3. 請關閉資料表。然後,建立新的更新查詢,[客戶] 資料表為基礎,並加入下列欄位:
          Query: qryUpdateCustomers
          -------------------------
          Type: Update Query
    
          Field: CustomerID
             Criteria: "ALFKI"
          Field: CompanyName
             Update To: "Alfred's Co."
    					
  4. 在 QBE 方格上方部份的任何地方按一下。然後,在 [檢視] 功能表中上, 按一下 [內容],以檢視查詢的屬性方塊]。
  5. UseTransaction 屬性設定為 [否]。
  6. 在 [查詢] 功能表上按一下 [執行]。您收到訊息的附註:
       You are about to update 1 row(s).
    
       Once you click Yes, you can't use the Undo command to reverse the
       changes. Are you sure you want to update these records?
    					
  7. 按一下 [否],指出您不想認可變更]。
  8. 關閉查詢,並將它存成 qryUpdateCustomers。
  9. 開啟 [客戶] 資料表,並檢視第一筆記錄。請注意,現在 [公司名稱] 欄位中的資料包含"Alfred 的 Co."

?考

如需有關 UseTransaction 屬性在 Visual Basic 編輯器] 中,按一下 [說明] 功能表上的 [Microsoft Visual Basic 說明],並在 「 Office 小幫手 」 或 「 解答精靈 」 中輸入 UseTransaction 屬性 然後按一下 [搜尋] 以檢視主題。

這篇文章中的資訊適用於:
  • Microsoft Access 2000 Standard Edition
關鍵字:?
kbmt kbprb kbusage KB208184 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:208184? (http://support.microsoft.com/kb/208184/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。