快速問題,希望獲得簡明明智的解決方案。在不保存更改的情況下關閉綁定表單
我有一個純粹爲數據輸入的綁定形式(不能瀏覽記錄,只能插入它們)。 我會有很多用戶搞砸了。爲了避免髒數據,我希望他們在提交記錄前確認表單是否正確。
問題是,只要我在窗體上輸入ANYING,訪問就會創建並保存一條記錄。
如果用戶點擊「提交」,我只希望記錄保存並提交。如果他們點擊關閉或退出應用程序,我不想在數據庫中部分完成記錄。
不使用未綁定的窗體並調用插入函數,是否有一個簡單的解決方案?
快速問題,希望獲得簡明明智的解決方案。在不保存更改的情況下關閉綁定表單
我有一個純粹爲數據輸入的綁定形式(不能瀏覽記錄,只能插入它們)。 我會有很多用戶搞砸了。爲了避免髒數據,我希望他們在提交記錄前確認表單是否正確。
問題是,只要我在窗體上輸入ANYING,訪問就會創建並保存一條記錄。
如果用戶點擊「提交」,我只希望記錄保存並提交。如果他們點擊關閉或退出應用程序,我不想在數據庫中部分完成記錄。
不使用未綁定的窗體並調用插入函數,是否有一個簡單的解決方案?
自動編號是唯一的,而不是順序的。如果您需要序號,請勿使用自動編號。自動編號不應該顯示給用戶。永遠不可能依賴於任何東西,而是獨一無二的,如果你足夠混亂,甚至沒有。
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.AText = "Invalid" Then
Me.Undo
Cancel = True
End If
End Sub
注意,與子窗體的窗體可能不具有撤銷工作,因爲該記錄上的變化致力於從子窗體的主要形式,反之亦然,這一切變得相當複雜。
是的,我有一個與父窗體有着多對一關係的子窗體。如果有人要取消/撤消,我懷疑他們已經到了填寫子窗體的位置,所以這可能就足夠了。如果不是,我可以在撤消之前在相關的表上執行刪除查詢。謝謝。 – Scotch
Remou的方法無疑是最快的,這是另一個基於我的評論;)
Option Explicit
Private blnGood As Boolean
Private Sub cmdSubmit_Click()
blnGood = True
Call DoCmd.RunCommand(acCmdSaveRecord)
blnGood = False
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Not blnGood Then
Cancel = True
Call MsgBox(Prompt:="click submit to save the record", Title:="Before Update")
End If
End Sub
您可以使用下面的代碼來創建一個清晰的按鈕,以防用戶做出的錯誤,並希望以清除整個形式並重新開始。
Private Sub btnClear_Click()
If Me.Dirty = True Then
DoCmd.RunCommand acCmdUndo
Exit Sub
End If
End Sub`
我有時發現before_update事件行事怪異,所以我通常禁用性質的關閉(X)按鈕,並添加自己的關閉按鈕,如果他想在放棄數據,提示用戶屏幕。
Private Sub close_Click()
Dim Answer As Integer
If Me.Dirty = True Then
Dim Response As Integer
' Displays a message box with the yes and no options.
Response = MsgBox(Prompt:="Do you wish to discard data?", Buttons:=vbYesNo)
' If statement to check if the yes button was selected.
If Response = vbYes Then
DoCmd.RunCommand acCmdUndo
DoCmd.Close
Else
Me.Clear.SetFocus
End If
Else
' The no button was selected.
DoCmd.Close
End If
End Sub
只要沒有子窗體,就可以撤消記錄。 – Fionnuala
@remou這是如何影響自動編號的?假設我在表單上有兩個併發用戶。用戶1打開表單並開始首先輸入數據。用戶2然後打開表單並自己輸入數據。用戶1決定他有比數據輸入更好的事情,並點擊'撤銷'按鈕。我猜這會導致數字上的差距(如插入然後是刪除,而不是回滾或缺乏提交?) – Scotch
也檢查了這一點[:您可以有一個布爾值之前檢查更新]( http://bytes.com/topic/access/insights/891249-how-stop-bound-forms-updating-automatically)。就保持自動增量器的一致性而言,您可以在插入發生之前始終進行驗證... – bonCodigo