我在 MS Access/SQL Server 2019 中有一個典型的訂單資料輸入表單/子表單設定。表單中有 2 個按鈕:保存/取消。
這是按鈕的代碼:
Private Sub cmdSave_Click()
On Error Resume Next
DoCmd.Close acForm, "frmDEPurchaseOrder", acSaveYes
RefreshForm ("frmPurchaseOrderDetails")
RequeryForm ("frmPurchaseOrderList")
End Sub
Private Sub cmdCancel_Click()
On Error Resume Next
If MsgBox("Změny budou zru?eny. Chcete pokra?ovat?", vbYesNoCancel vbExclamation, "Upozornění") <> vbYes Then Exit Sub
Me.Undo
DoCmd.Close acForm, "frmDEPurchaseOrder", acSaveYes
RefreshForm ("frmPurchaseOrderDetails")
RequeryForm ("frmPurchaseOrderList")
End Sub
“保存”按鈕按預期作業,但是當我添加新訂單時,填寫基本訂單資訊,然后單擊子表單添加專案,此時會及時創建訂單記錄。
問題是當我點擊“取消”時,訂單仍然保存在 SQL Server 2019 中。
如果在此程序中隨時單擊取消,是否有任何簡單的方法可以不保存/洗掉記錄?
uj5u.com熱心網友回復:
只要您使用系結表單,只要您的輸入焦點從該記錄移動到其他內容,就會創建一個記錄。你有兩個選擇。干凈的一種是在單獨的表上創建新訂單,并且僅在“保存”時將它們轉移到主表。更簡單但更臟的方法是通過洗掉“取消”上創建的任何記錄來進行清理。無論哪種方式,您都必須使用代碼管理記錄,您將無法僅使用有關如何關閉表單的引數。
如果您的訂單專案子表設定為在洗掉主訂單表上的條目時級聯洗掉,則使用選項二相對容易。
uj5u.com熱心網友回復:
在 Subform GetFoucs 事件中,您可以使用以下代碼
Sub YourSubForm_GetFoucs()
Me.Parent.Refresh
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/497866.html
