2017-08-27 61 views
0

Access 2010 &訪問後端。羣組刪除後的MS Access查詢表格

  1. 我使用刪除查詢來刪除 連續表單上選定的一組項目。
  2. 刪除查詢位於form_delete事件中,它的作用是 。
  3. 在form_AfterDelConfirm事件我有一個me.requery命令,但窗體不被重新查詢,因爲在form_delete我有Cancel = True,它可以防止AfterDelConfirm事件觸發。如果我將取消更改爲False,則AfterDelConfirm會觸發,但是me.requery會產生記錄正在被其他用戶使用的錯誤(我是唯一的用戶)。

問題是,連續窗體在被刪除的組項目的刪除記錄中顯示#Deleted 。

我還有一個重新查詢按鈕,它可以查詢清除已刪除項目的子窗體。

我的目標是清除已刪除的項目,而用戶不必單擊重新查詢按鈕。

我該如何做到這一點?

謝謝,

回答

0

跳過刪除查詢。相反,直接從形式使用其記錄在您單擊按鈕調用的代碼刪除:

Dim rs As DAO.Recordset 

Set rs = Me.RecordsetClone 

While Not rs.EOF 
    ' Specify conditions for a delete, for example: 
    If rs!FieldA.Value = SomeNumber And rs!FieldB.Value = "SomeText" Then 
     rs.Delete 
    End If 
    rs.MoveNext 
Wend 

Set rs = Nothing 

將需要形式的無重新查詢。

+0

我用你的方法和記錄被從表格中刪除,但不是從表格中刪除。我打開並關閉了桌子多次檢查,但記錄仍然存在,其中一個焦點阻止了進一步的操作。 – Sputnik

+0

我無法複製。即使表單的_AllowDelete_設置爲True,記錄也將被刪除,如果表單的記錄源是隻讀的,則rs.Delete將失敗。所以其他事情正在發生。 – Gustav

+0

東西很奇怪,但我接受你的解決方案是正確的。記錄源不能是隻讀的,因爲如果我使用我的刪除查詢,然後重新查詢記錄被刪除。我已經決定讓用戶現在點擊重新查詢按鈕,所以感謝您的幫助。 – Sputnik