是否有可能在ACCESS 2007中使所有其他人以只读格式离开某个字段进行编辑? 我的表单上有大约40个控件,并且只能一个一个读取,这样会很不方便。我想有这些领域之一(选项组)编辑,这样,当用户选择一个选项,整个形式变为可编辑如何在Access 2007窗体中选择性地编辑字段?
回答
你可以使用VBA程序来遍历窗体的控件集合和每个控件的.Locked
属性设置为True
。检查每个控件的.ControlType
属性,并忽略这些标签和命令按钮的控件。 IOW,只为那些有意义的控件类型设置.Locked
。
选项1
你可以做你想要锁定的子窗体形式,把选项组的主要形式有:
例如:
Private Sub Form_Current()
Me.aTable_subform.Form.AllowAdditions = False
Me.aTable_subform.Form.AllowEdits = False
Me.aTable_subform.Form.AllowDeletions = False
End Sub
Private Sub PickOne_AfterUpdate()
Select Case Me.PickOne
Case 1, 3
Me.aTable_subform.Form.AllowAdditions = True
Me.aTable_subform.Form.AllowEdits = True
Me.aTable_subform.Form.AllowDeletions = True
Case 2
Me.aTable_subform.Form.AllowAdditions = False
Me.aTable_subform.Form.AllowEdits = True
Me.aTable_subform.Form.AllowDeletions = False
End Select
End Sub
其他注释re comment
选项2
你可以有主窗体打开时打开弹出式UO形式。在这个例子的主窗体之前它将变得可见。
代码的主要形式:
Private Sub Form_Close()
DoCmd.Close acForm, "popupform"
End Sub
Private Sub Form_Load()
DoCmd.OpenForm "popupform", , , , , acDialog
End Sub
Private Sub PickOne_BeforeUpdate(Cancel As Integer)
Select Case Me.PickOne
Case 1
If MsgBox("You chose this. Continue?", vbYesNo) = vbYes Then
Forms!mainform.AllowAdditions = True
Forms!mainform.AllowEdits = True
Forms!mainform.Form.AllowDeletions = True
''Setting the visibility leaves the form
''available but it is no longer a dialog form
''but you must remember to close it elsewhere
''If the form is not needed, just close it here
Me.Visible = False
Else
Cancel = True
End If
Case 2
''Whatever
End Select
End Sub
选项3
每个控制具有旨在用于由设计者标签属性,例如,您可以将“Admin”添加到需要锁定的所有控件。哟必须使用加载事件,或以后的事件。
Private Sub Form_Load()
For Each ctrl In Me.Controls
''For example:
If ctrl.Tag = "Admin" And TheOption <> "Admin" Then
ctrl.Locked = True
End If
Next
End Sub
您就可以轻松拥有多个标签,一个是说的管理员用户或选项X,另一个为其他用户或OptionY。
这听起来不错。但是,我在主窗体本身和子窗体上有很多控件。在类似的路线上,如果我创建一个嵌入此选项组的子表单,我希望表单在从该选项组中选择值时解锁。 – user1175126 2013-03-28 10:20:30
不,它不能以这种方式工作,因为子窗体也会被主窗体上的AllowEdits锁定。 – Fionnuala 2013-03-28 11:22:12
我已经添加了一些其他选项。 – Fionnuala 2013-03-28 11:34:31
- 1. 如何编辑在zend窗体中选择的html属性?
- 2. 选择Laravel窗体编辑
- 3. 是否可以在Access 2007中的SQL编辑窗口中更改字体?
- 4. 防止编辑MS Access中的特定子窗体字段
- 5. ACCESS 2007 - 如何打开VBA中的选择窗口对话框
- 6. 在Access 2007中启用组合框选择的字段可见性
- 7. Rails窗体编辑中的选择帮助编辑
- 8. Rails编辑窗体与选择
- 9. 如何在窗体中编辑图像字段drupal 7
- 10. 如何在嵌套窗体中定义选择字段?
- 11. 在Access中实现多对多,子窗体,复选框2007
- 12. 我如何在MS WORD 2007中编辑表单字段值
- 13. 如何在Ms Access 2007中创建导航窗体
- 14. Access 2007报告 - 如何'unfix'字段?
- 15. 如何选择性地禁用DataGrid中的编辑?
- 16. jqGrid - 在编辑窗体中设置选择值
- 17. 如何绕过Access 2007中的启动窗体?
- 18. Access 2007 - Docmd.OpenForm无法打开窗体,OpenArgs?
- 19. Html表单onsubmit在窗体中编辑文本字段?
- 20. 在窗体中不使用ID隐藏字段进行编辑?
- 21. 如何通过MS Access上的窗体编辑记录?
- 22. MS Access 2007关键字在窗体内搜索生成报告
- 23. 如何在代码编辑器中弹出jquery窗体编辑
- 24. 如何在Access 2007
- 25. Access 2007中的条件字段值
- 26. MS Access窗体字段显示格式
- 27. 如何让PyDev编辑器选择性地忽略错误?
- 28. 编辑和不可编辑的输入字段,然后选择
- 29. 选择性编辑距离
- 30. 如何在用户从选择框中选择时将值加载到jqGrid的编辑窗体中
这将需要我列出所有需要锁定在代码中的控件的名称,对吧? – user1175126 2013-03-28 10:22:07
我不明白你为什么需要列出控件名称。下面是通过Controls集合循环的一个示例:http://stackoverflow.com/a/15349725/77335 – HansUp 2013-03-28 14:48:09