我有一个巨大的访问形式,需要阻止用户编辑其中的详细信息。我已经通过将Me.Allowedits设置为false来完成此操作。但是我需要保持一个对编辑开放的领域。为了做到这一点,我有jus放置代码打开字段后,在允许代码出现的两个地方的allowedits部分。调试的流程就像这样
Load
Me.allowedits =false
if condition=true
field.locked=false
field.enalble=true
我在表格的当前事件中复制了同样的事情。基本上我只是将代码设置为fasle的地方。 但我的字段仍然被锁定,无法编辑它。这是因为一旦我们设置allowedits = false,页面中的字段就无法再次编辑。 还有其他选择吗?
感谢帮助。
答案 0 :(得分:1)
然后您无法使用表单级别设置。
如果这是常量(字段始终已锁定),只需将所有其他控件设置为Locked = True
。
如果它是动态的,请使用以下过程:
Private Sub SetEditable(EnableEdit As Boolean)
Dim ctl As Control
For Each ctl In Me.Controls
' The main editable control types (add more if they occur on your form)
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or _
ctl.ControlType = acCheckBox Or ctl.ControlType = acSubform Then
If ctl.Name = "MySpecialDateField" Then
' Always editable
ctl.Locked = False
Else
ctl.Locked = Not EnableEdit
' If you want to provide a visual feedback:
' 0 = Flat (locked), 2 = Sunken (editable)
ctl.SpecialEffect = IIf(EnableEdit, 2, 0)
End If
End If
End If
Next ctl
End Sub