允许条件编辑同时隐藏其他命令按钮 Access 2007-2010
Allowing conditional editing while hiding other command buttons Access 2007-2010
我目前有一个表格被锁定以防止意外编辑。但是,该表单包含可能需要编辑的客户联系信息等信息。我目前有一个命令按钮,用户可以单击它来关闭表单并以 "edit" 模式重新打开它。我想要发生的是当表单重新加载并出现 "save" 按钮时,让页面上的所有其他命令按钮消失。单击保存按钮后,我希望表单返回不可编辑状态,并重新显示所有命令按钮。
我目前在数据库的另一个表单上设置了类似的东西(见下面的代码),但那是为了添加一条新记录。如何为现有记录设置它?除了关闭和重新打开表单之外,还有更优雅的方法吗?我已经搜索了很长时间,但似乎找不到任何东西。如果您需要有关数据库结构的更多背景信息或我正在尝试做的事情的更多细节,请告诉我。感谢您的帮助!
*
Private Sub add_Click()
On Error Resume Next
DoCmd.GoToRecord , , acNewRec
End Sub
Private Sub Form_Current()
If Me.NewRecord Then
Me.recordcounter.Caption = "New Record"
Me.next.Visible = False
Me.previous.Visible = False
Me.first.Visible = False
Me.last.Visible = False
Me.add.Visible = False
Me.save.Visible = True
Else
Me.recordcounter.Caption = "Record " & Me.CurrentRecord & " of " & Me.Recordset.RecordCount
Me.next.Visible = True
Me.previous.Visible = True
Me.first.Visible = True
Me.last.Visible = True
Me.add.Visible = True
Me.save.Visible = False
End If
End Sub
Private Sub save_Click()
DoCmd.save
Me.previous.Visible = True
Me.first.Visible = True
Me.recordcounter.Caption = "Record " & Me.CurrentRecord & " of " & Me.Recordset.RecordCount + 1
Me.previous.SetFocus
Me.save.Visible = False
End Sub
*
无需在 "edit" 模式下关闭并重新打开表单,您只需设置您希望能够更改的字段的属性,即 .locked = false and/or .enabled =直接在 "edit" 按钮的 OnClick 事件中为真。
在您的 "save" 按钮的 OnClick 事件中,您以相反的方式进行操作。
例如:
Private Sub EditButton_Click()
Field1.Enabled = True
End Sub
Private Sub SaveButton_Click()
Field1.Enabled = False
End Sub
现在,当您点击编辑按钮时,您的 field1 将启用输入,在点击您的保存按钮后,您的 field1 将再次被禁用(即变灰,不允许任何输入或焦点设置)。
如果您只想 "lock" 字段(即让它们具有焦点并且不要将它们变灰但阻止任何输入),只需使用 .Locked 字段 属性.
我目前有一个表格被锁定以防止意外编辑。但是,该表单包含可能需要编辑的客户联系信息等信息。我目前有一个命令按钮,用户可以单击它来关闭表单并以 "edit" 模式重新打开它。我想要发生的是当表单重新加载并出现 "save" 按钮时,让页面上的所有其他命令按钮消失。单击保存按钮后,我希望表单返回不可编辑状态,并重新显示所有命令按钮。
我目前在数据库的另一个表单上设置了类似的东西(见下面的代码),但那是为了添加一条新记录。如何为现有记录设置它?除了关闭和重新打开表单之外,还有更优雅的方法吗?我已经搜索了很长时间,但似乎找不到任何东西。如果您需要有关数据库结构的更多背景信息或我正在尝试做的事情的更多细节,请告诉我。感谢您的帮助!
*
Private Sub add_Click()
On Error Resume Next
DoCmd.GoToRecord , , acNewRec
End Sub
Private Sub Form_Current()
If Me.NewRecord Then
Me.recordcounter.Caption = "New Record"
Me.next.Visible = False
Me.previous.Visible = False
Me.first.Visible = False
Me.last.Visible = False
Me.add.Visible = False
Me.save.Visible = True
Else
Me.recordcounter.Caption = "Record " & Me.CurrentRecord & " of " & Me.Recordset.RecordCount
Me.next.Visible = True
Me.previous.Visible = True
Me.first.Visible = True
Me.last.Visible = True
Me.add.Visible = True
Me.save.Visible = False
End If
End Sub
Private Sub save_Click()
DoCmd.save
Me.previous.Visible = True
Me.first.Visible = True
Me.recordcounter.Caption = "Record " & Me.CurrentRecord & " of " & Me.Recordset.RecordCount + 1
Me.previous.SetFocus
Me.save.Visible = False
End Sub
*
无需在 "edit" 模式下关闭并重新打开表单,您只需设置您希望能够更改的字段的属性,即 .locked = false and/or .enabled =直接在 "edit" 按钮的 OnClick 事件中为真。
在您的 "save" 按钮的 OnClick 事件中,您以相反的方式进行操作。
例如:
Private Sub EditButton_Click()
Field1.Enabled = True
End Sub
Private Sub SaveButton_Click()
Field1.Enabled = False
End Sub
现在,当您点击编辑按钮时,您的 field1 将启用输入,在点击您的保存按钮后,您的 field1 将再次被禁用(即变灰,不允许任何输入或焦点设置)。
如果您只想 "lock" 字段(即让它们具有焦点并且不要将它们变灰但阻止任何输入),只需使用 .Locked 字段 属性.