熱度 2|
下面的示例檢查窗體上所有控件的 ControlType 屬性。對(duì)每個(gè)標(biāo)簽和文本框控件,該過(guò)程均切換其 SpecialEffect 屬性。當(dāng)標(biāo)簽控件的 SpecialEffect 屬性設(shè)置為“陰影”,文本框的 SpecialEffect 屬性設(shè)置為“普通”,并且 AllowAdditions、AllowDeletions 和 AllowEdits 屬性均設(shè)置為 True 時(shí),intCanEdit 變量將切換為允許編輯基礎(chǔ)數(shù)據(jù)。
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 囫圇吞棗,沒(méi)有完全讀懂這段代碼,就開(kāi)始改造這個(gè)過(guò)程,結(jié)果行不通,就放棄了。 接著,用“Form.RecordLocks 屬性 ”,提示相關(guān)記錄已以獨(dú)占的方式打開(kāi),老提示錯(cuò)誤,從沒(méi)遇到這種情況,所以就棄之不用。 沒(méi)有退路了,只好另辟蹊徑,按照自己對(duì)access2007 羅斯文數(shù)據(jù)庫(kù)的代碼的理解,使用了對(duì)象的“Enabled”和“l(fā)ocked”屬性,啃下了這塊骨頭。 我想,幫助中的那段代碼應(yīng)該是很有代表性的,把它改成可控的事件過(guò)程應(yīng)該是可行的,其在主窗體和子窗體中還是很有實(shí)用天地的,所以希望看到的朋友,能夠改一改,以解菜鳥(niǎo)們的燃眉之急。 |
|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó)
( 粵ICP備10043721號(hào)-1 )
GMT+8, 2025-7-13 08:32 , Processed in 0.066827 second(s), 18 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.