是否有可能在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. 选择Laravel窗体编辑
- 2. 是否可以在Access 2007中的SQL编辑窗口中更改字体?
- 3. ACCESS 2007 - 如何打开VBA中的选择窗口对话框
- 4. 在Access 2007中启用组合框选择的字段可见性
- 5. Rails窗体编辑中的选择帮助编辑
- 6. 如何在窗体中编辑图像字段drupal 7
- 7. 如何在嵌套窗体中定义选择字段?
- 8. 在Access中实现多对多,子窗体,复选框2007
- 9. Access 2007报告 - 如何'unfix'字段?
- 10. 如何选择性地禁用DataGrid中的编辑?
- 11. 如何绕过Access 2007中的启动窗体?
- 12. Access 2007 - Docmd.OpenForm无法打开窗体,OpenArgs?
- 13. 如何在代码编辑器中弹出jquery窗体编辑
- 14. MS Access 2007关键字在窗体内搜索生成报告
- 15. MS Access窗体字段显示格式
- 16. 如何让PyDev编辑器选择性地忽略错误?
- 17. 选择性编辑距离
- 18. 如何在用户从选择框中选择时将值加载到jqGrid的编辑窗体中
- 19. 如何编辑的文本字段jQuery的日期选择器
- 20. 如何选择窗体页
- 21. 在窗体向导中设置字段的选择?
- 22. 编辑任何字段值后的更新窗体AngularJs
- 23. 在Sharepoint 2010编辑窗体上隐藏字段
- 24. 编辑窗体选定的值输入
- 25. 如何停止窗体字段在引导窗体中移动
- 26. 在Access 2007中再次使隐藏窗体可见
- 27. MS Access 2007:选择唯一记录
- 28. Xcode字体选择器窗口无法选择字体集合
- 29. MS-Access避免从窗体字段文档导入空字段
- 30. 来自Textbox的MS Access选择字段
这将需要我列出所有需要锁定在代码中的控件的名称,对吧? – user1175126 2013-03-28 10:22:07
我不明白你为什么需要列出控件名称。下面是通过Controls集合循环的一个示例:http://stackoverflow.com/a/15349725/77335 – HansUp 2013-03-28 14:48:09