设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 8132|回复: 3
打印 上一主题 下一主题

[窗体] 如何将只读模式窗体就地转为编辑模式?

[复制链接]
跳转到指定楼层
1#
发表于 2004-12-19 07:08:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在窗体中加一个按钮,在窗体以只读模式打开的状态下就地将窗体改为编辑模式(对应窗体现有内容)。我该如何做?最好用宏解决。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-12-19 18:49:00 | 只看该作者


是否符合要求

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
发表于 2004-12-19 21:44:00 | 只看该作者
更改窗体的属性即可全部显示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

  

4#
 楼主| 发表于 2004-12-20 07:12:00 | 只看该作者
可以了,谢谢楼上两位!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-13 11:52 , Processed in 0.106765 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表