注册 登录
Office中国论坛/Access中国论坛 返回首页

yanghua1900363的个人空间 http://www.office-cn.net/?158746 [收藏] [复制] [分享] [RSS]

日志

纸上得来终觉浅,绝知此事要躬行

热度 2已有 1805 次阅读2012-11-3 11:32 |个人分类:窗体

本周,为了一个窗体数据锁定的问题伤透了脑经。
我的数据表是直接绑定在窗体上的,一不小心就会把数据修改掉,造成数据的不完整性,准确性就不用讲了。所以下决心改变一下。
首先,借用帮助文档里的一个实例:

下面的示例检查窗体上所有控件的 ControlType 属性。对每个标签和文本框控件,该过程均切换其 SpecialEffect 属性。当标签控件的 SpecialEffect 属性设置为阴影,文本框的 SpecialEffect 属性设置为普通,并且 AllowAdditionsAllowDeletions AllowEdits 属性均设置为 True 时,intCanEdit 变量将切换为允许编辑基础数据。

Visual Basic for Applications

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

囫囵吞枣,没有完全读懂这段代码,就开始改造这个过程,结果行不通,就放弃了。

接着,用“Form.RecordLocks 属性 ”,提示相关记录已以独占的方式打开,老提示错误,从没遇到这种情况,所以就弃之不用。

没有退路了,只好另辟蹊径,按照自己对access2007 罗斯文数据库的代码的理解,使用了对象的“Enabled”和“locked”属性,啃下了这块骨头。

   我想,帮助中的那段代码应该是很有代表性的,把它改成可控的事件过程应该是可行的,其在主窗体和子窗体中还是很有实用天地的,所以希望看到的朋友,能够改一改,以解菜鸟们的燃眉之急。

全部作者的其他最新日志

发表评论 评论 (3 个评论)

回复 tmtony 2012-11-4 18:01
学得很快啊。自己不断写,才能进步
回复 yanghua1900363 2012-11-5 10:43
谢谢王站的鼓励!
回复 yanwei82123300 2012-11-22 14:31
yanghua1900363,真棒比我强11

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

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

GMT+8, 2024-4-27 15:15 , Processed in 0.071444 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部