Office中国论坛/Access中国论坛
标题:
如何将只读模式窗体就地转为编辑模式?
[打印本页]
作者:
steven_shuhong
时间:
2004-12-19 07:08
标题:
如何将只读模式窗体就地转为编辑模式?
我想在窗体中加一个按钮,在窗体以只读模式打开的状态下就地将窗体改为编辑模式(对应窗体现有内容)。我该如何做?最好用宏解决。
作者:
ccczzz
时间:
2004-12-19 18:49
[attach]8193[/attach]
是否符合要求
作者:
cg1
时间:
2004-12-19 21:44
更改窗体的属性即可全部显示AllowEdits 属性
参阅应用于示例特性使用 AllowEdits 属性可以指定用户是否可在使用窗体时编辑已保存的记录。Boolean 型,可读写。expression.AllowEdits
expression 必需。返回“应用于”列表中的一个对象的表达式。设置
AllowEdits 属性使用以下设置:设置 Visual Basic 说明
是 True (默认值)用户可以编辑已保存记录。
否 False 用户不能编辑已保存记录。
可以使用窗体属性表、宏或 Visual Basic 来设置 AllowEdits 属性。说明
如果要防止更改窗体中显示的现有数据,可以使用 AllowEdits 属性。如果要防止更改特定控件中的数据,可以使用 Enabled 或 Locked 属性。如果要防止更改已有记录(使窗体只读),可以将 AllowAdditions、AllowDeletions 和 AllowEdits 属性设为“否”。也可以将 RecordsetType 属性设置为“快照”,使记录成为只读。将 AllowEdits 属性设置为“否”时,“删除记录”或“数据输入”菜单命令对现有记录将不可用。(如果将 AllowAdditions 属性设为“是”,则其对新记录将仍然可用。)无论 AllowEdits 属性的设置如何,通过编程对字段值进行的更改都会使当前记录可被编辑。如果要防止用户对需要通过编程才能编辑的记录(AllowEdits 为“否”)进行更改,请在所有程序化更改后保存记录;保存完针对当前记录未保存的所有更改后,AllowEdits 属性设置将再次发挥作用。
注释 如果设置了 OpenForm 操作的“数据模式”参数,Microsoft Access 将忽略许多窗体属性设置。如果 OpenForm 操作的“数据模式”参数设置为“编辑”,Microsoft Access 所打开的窗体将具有下列属性设置:
AllowEdits:是
AllowDeletions:是
AllowAdditions:是
DataEntry:否
要防止 OpenForm 操作覆盖任何现有的属性设置,可以省略“数据模式”参数,使 Microsoft Access 使用窗体定义的属性设置。示例
下面的示例检查窗体上所有控件的 ControlType 属性,并切换每个标签控件和文本框控件的 SpecialEffect 属性。当标签控件的 SpecialEffect 属性设置为“阴影”,文本框控件的 SpecialEffect 属性设置为“普通”,AllowAdditions、AllowDeletions 和 AllowEdits 属性设置为 True 时,intCanEdit 变量将切换到允许编辑基础数据的状态。Sub ToggleControl(frm As Form)
Dim ctl As Control
Dim intI As Integer, intCanEdit As Integer
Const conTransparent = 0
Const conWhite = 16777215
For Each ctl in frm.Controls
With ctl
Select Case .ControlType
Case acLabel
If .SpecialEffect = acEffectShadow Then
.SpecialEffect = acEffectNormal
.BorderStyle = conTransparent
intCanEdit = True
Else
.SpecialEffect = acEffectShadow
intCanEdit = False
End If
Case acTextBox
If .SpecialEffect = acEffectNormal Then
.SpecialEffect = acEffectSunken
.BackColor = conWhite
Else
.SpecialEffect = acEffectNormal
.BackColor = frm.Detail.BackColor
End If
End Select
End With
Next ctl
If intCanEdit = IFalse Then
With frm
.AllowAdditions = False
.AllowDeletions = False
.AllowEdits = False
End With
Else
With frm
.AllowAdditions = True
.AllowDeletions = True
.AllowEdits = True
End With
End If
End Sub
作者:
steven_shuhong
时间:
2004-12-20 07:12
可以了,谢谢楼上两位!!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3