[英]Change current read-only form record to be editable
我正在使用Microsoft Access 2013創建數據庫,在該數據庫中,我具有一個默認視圖為只讀的表單,以防止意外編輯。 我目前正在嘗試包含一個按鈕,以僅允許對當前記錄進行編輯。 我嘗試使用DoCmd.OpenForm
在可編輯模式下打開記錄(因為我在其他地方使用該命令來打開特定記錄),但是似乎無法使用該命令在同一表單內打開記錄。
預先感謝您提供有關如何解決此問題的建議。
我從我讀過的第一本VBA書籍中學到了這一點(我認為是Access 97 VBA for Dummies),從那以后我再也沒有見過有人使用Tag屬性,它沒有其他目的,只是讓您找到可以使用的屬性。 在標簽屬性中為要保護的任何控件(文本框,組合框等)輸入“可鎖定”。 將一個名為btnEdit的按鈕添加到您的窗體。
當您輸入一條記錄時,如果Form Current事件是一條新記錄,它將解鎖控件;如果它是現有記錄,則將鎖定控件。
然后,該按鈕將解鎖以允許編輯,並在退出記錄后重新鎖定。 我發現這對於防止意外編輯非常有效。
Private Sub Form_Current()
Dim ctlCurr As Control
'Lock the record if it is not new. Prevents inadvertent edits.
If Me.NewRecord = False Then
For Each ctlCurr In Me.Controls
If ctlCurr.Tag = "Lockable" Then
ctlCurr.Locked = True
End If
btnEdit.Enabled = True
Next
End If
'Unlock a new record for editing.
If Me.NewRecord = True Then
For Each ctlCurr In Me.Controls
If ctlCurr.Tag = "Lockable" Then
ctlCurr.Locked = False
End If
Next
btnEdit.Enabled = False
End If
End Sub
Private Sub btnEdit_Click()
Dim ctlCurr As Control
'Unlocks a record for editing. Requires the operator to make the decision to edit.
If Me.NewRecord = False Then
For Each ctlCurr In Me.Controls
If ctlCurr.Tag = "Lockable" Then
ctlCurr.Locked = False
End If
Next
End If
End Sub
除了當前記錄,您無法編輯其他任何內容。
使用以下代碼行:
Me.AllowEditions = True
但這沒有多大意義,因為您可以以這種方式打開表單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.