我正在使用Microsoft Access 2013创建一个数据库,其中我有一个默认视图为只读的表单,以防止意外编辑。我目前正在尝试包含一个按钮,仅对当前记录进行编辑。我尝试使用DoCmd.OpenForm
以可编辑模式打开记录(因为我在其他地方使用该命令打开特定记录),但似乎它无法使用该命令在同一表单中打开记录。
我提前感谢您就如何解决此问题提出任何建议。
答案 0 :(得分:1)
我从我读过的第一本VBA书中了解到这一点(我认为访问97 VBA for Dummies),我从未见过有人使用Tag属性,因为除了你找到一些东西之外别无其他用途为了。输入"可锁定"在要保护的任何控件(文本框,组合框等)的标记属性中。在表单中添加一个名为btnEdit的按钮。
当您输入记录时,如果控件是新记录,则表格当前事件将解锁控件,如果控件是现有记录,则锁定控件。
然后该按钮将解锁以允许编辑,并在退出记录后重新锁定。我发现这对防止意外编辑非常有效。
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
答案 1 :(得分:0)
您无法编辑当前记录以外的任何内容。
使用此代码行:
Me.AllowEditions = True
但它没有多大意义,因为你可以这样打开表单。