窗体本身/综合应用
锁定窗体数据不被修改的几种方法
2016-10-18 20:38:08

锁定窗体数据不被修改的几种方法


  1. 设置窗体的AllowEdids属性

    允许编辑 AllowEdits  设置此窗体是否可更改数据.前提是此窗体绑定记录源

    Me.AllowEdits=False

2. 循环所有字段,设置它的Enabled =False (可用为假) 或 Locked=True (锁定为真)

  For each ctr in Me.Controls

   If Typeof ctr is TextBox then

     ctr.Enabled =False

     ctr.Locked=True

   End If

  Next

  

3. 设置窗体的记录集类型

   Me.RecordsetType=2  '快照 2 绑定到其字段的表和控件都不能编辑。 

   

   

 

 

相关知识:

 RecordsetType 属性

 使用 RecordsetType 属性可以指定何种类型的记录集可以在窗体中使用。可读写。

expression.RecordsetType

expression      必需。返回“应用于”列表中的一个对象的表达式。

说明

RecordsetType 属性在 Microsoft Access 数据库 (.mdb) 中使用以下设置:

设置 Visual Basic 说明 

动态集 0 (默认值)对基于单个表或基于具有一对一关系的多个表的绑定控件可以编辑。对于绑定到字段(基于一对多关系的表)的控件,若未启用表间的级联更新,则不能编辑位于关系中的“一”方的联接字段中的数据。有关详细信息,请参阅从查询中更新记录时主题中的有关解释。 

动态集(不一致的更新) 1 所有绑定到其字段的表和控件都可以编辑。 

快照 2 绑定到其字段的表和控件都不能编辑。 

注释  如果不希望在窗体位于“窗体”视图或“数据表”视图时编辑绑定控件中的数据,则可以将 RecordsetType 属性设置为“快照”。 

RecordsetType 属性在 Microsoft Access 项目 (.adp) 中使用以下设置:

设置 Visual Basic 说明 

快照 3 绑定到其字段的表和控件都不能编辑。 

可更新快照 4 (默认值)所有绑定到其字段的表和控件都可以编辑。 

注释  可以使用窗体的属性表、宏或 Visual Basic 来设置该属性。 

注释  更改打开的窗体或报表的 RecordsetType 属性时,将会引起自动重新创建记录集。

可以基于其字段绑定到窗体控件的多个基础表创建窗体。根据 RecordsetType 属性设置的不同,可以设置能够编辑哪些绑定控件。

除了由 RecordsetType 提供的编辑控件之外,窗体上的每个控件都有一个 Locked 属性,可用来指定控件及其基础数据是否可以编辑。如果 Locked 属性设为“是”,则不能编辑数据。

示例

在下面的示例中,只有当用户 ID 为 ADMIN 时,才允许更新记录。如果公用变量 gstrUserID 的值不是 ADMIN,则该代码示例会将 RecordsetType 属性设置为“快照”。

Sub Form_Open(Cancel As Integer)

    Const conSnapshot = 2

    If gstrUserID <> "ADMIN" Then

        Forms!Employees.RecordsetType = conSnapshot

    End If

End Sub

 

(ADP-相关文章技巧链接):Access ADP查询的where语句中引用窗体中控件的值