在允许访问后打开一个字段

时间:2016-08-10 10:25:47

标签: vba ms-access access-vba

我有一个巨大的访问形式,需要阻止用户编辑其中的详细信息。我已经通过将Me.Allowedits设置为false来完成此操作。但是我需要保持一个对编辑开放的领域。为了做到这一点,我有jus放置代码打开字段后,在允许代码出现的两个地方的allowedits部分。调试的流程就像这样

   Load 
Me.allowedits =false
if condition=true
field.locked=false
field.enalble=true

我在表格的当前事件中复制了同样的事情。基本上我只是将代码设置为fasle的地方。 但我的字段仍然被锁定,无法编辑它。这是因为一旦我们设置allowedits = false,页面中的字段就无法再次编辑。 还有其他选择吗?

感谢帮助。

1 个答案:

答案 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