簡體   English   中英

毫秒訪問 vba 麻煩從子窗體刪除記錄

[英]ms access vba trouble deleting record from a subform

我有一個按鈕后面的代碼,可以從子表單中刪除記錄。 當我第一次打開父表單時,該代碼有效。 但是,如果我把 select 的另一條記錄刪除,第一次之后就不行了。 我必須關閉表單並重新打開它才能使代碼正常工作,而且它只能工作一次。

我嘗試在其他程序中注釋掉所有其他代碼以隔離問題(例如 Form_Open),但未能找到導致問題的原因。

代碼是:

Dim LResponse As Integer

LResponse = MsgBox("Do you wish to Delete this local Vendor?", vbYesNo, "Delete Local Vendor")

If LResponse = vbYes Then

    Me.VendorPrograms_subform.Form.Recordset.Delete
    Me.VendorPrograms_subform.Form.Recordset.MoveNext

Else
   DoCmd.CancelEvent
End If

所以代碼有效,但據我所知,其他東西似乎正在引起沖突。

我也試過 SQL:

Dim sSQL As String

sSQL = "DELETE * FROM VendorPrograms WHERE VendorId# = " & "Me!VENDOR#"
DoCmd.RunSQL sSQL
Me!VendorPrograms_subform.Requery

此代碼不會引發錯誤,但不會刪除記錄。 我猜的語法錯誤?

所以問題最終是表單和子表單下的查詢。 我必須將兩者都簡化為只包含主表單的主表和子表單的子表。 過去,如果我沒記錯的話,我注意到如果查詢包含多個表,我無法在 forms 中進行數據輸入。 這已經改變,現在查詢中的多個表將用於數據輸入,但似乎部分不允許從子表單中刪除記錄(我能夠在打開表單后刪除一條記錄,但進一步刪除不起作用)如果多個表用於查詢。 也許有人對此有進一步的了解?

這是有效的代碼:

將 LResponse 調暗為 Integer

LResponse = MsgBox("你想刪除這個本地供應商嗎?", vbYesNo, "刪除本地供應商")

如果 LResponse = vbYes 那么

Me![VendorPrograms subform1].Form![VendorId#].SetFocus
Me.[VendorPrograms subform1].Form.Recordset.Delete
Me.[VendorPrograms subform1].Form.Recordset.MoveNext
Me.Requery

否則 DoCmd.CancelEvent End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM