热度 2|
下面的示例检查窗体上所有控件的 ControlType 属性。对每个标签和文本框控件,该过程均切换其 SpecialEffect 属性。当标签控件的 SpecialEffect 属性设置为“阴影”,文本框的 SpecialEffect 属性设置为“普通”,并且 AllowAdditions、AllowDeletions 和 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”属性,啃下了这块骨头。 我想,帮助中的那段代码应该是很有代表性的,把它改成可控的事件过程应该是可行的,其在主窗体和子窗体中还是很有实用天地的,所以希望看到的朋友,能够改一改,以解菜鸟们的燃眉之急。 |
|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )
GMT+8, 2024-11-25 04:42 , Processed in 0.059322 second(s), 18 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.