技術(shù) 點(diǎn)
- 技術(shù)
- 點(diǎn)
- V幣
- 點(diǎn)
- 積分
- 21536
|
本帖最后由 todaynew 于 2010-1-11 13:38 編輯
有版友問子窗體記錄有選擇的鎖定問題。對連續(xù)窗體或數(shù)據(jù)表窗體的記錄進(jìn)行有選擇的鎖定,看起來是一個(gè)麻煩的事情。因?yàn)閷?yīng)字段的控件名就一個(gè),你要鎖定它的話所有的都鎖定了,不會(huì)只針對一條或者幾條記錄來鎖定。怎么解決這個(gè)問題呢?實(shí)際上說起來也不難,你可以利用獲得焦點(diǎn)事件或者單擊事件來處理。因?yàn)槟惬@得焦點(diǎn)或者單擊時(shí),你可以對當(dāng)前記錄中的某個(gè)字段值進(jìn)行判斷,進(jìn)而做出鎖定或者不鎖定操作。從結(jié)果上來看,此時(shí)的操作是對窗體所有記錄的操作,但形式上你感覺是對當(dāng)前記錄的操作。
以下這個(gè)所編寫的子程序,并結(jié)合焦點(diǎn)或單擊事件來使用就可以達(dá)到有選擇的鎖定子窗體記錄的目的:
Private Sub 選擇鎖定(myctl As Control, B As Boolean)
'功能:有選擇的鎖定子窗體中的記錄
'參數(shù):myctl,作為判斷的控件:B=true,myctl鎖定,B=false,myctl不鎖定
Dim ctls As Controls
Dim ctl As Control
Set ctls = Me.Form.Controls
For Each ctl In ctls
If ctl.ControlType <> acLabel Then
If myctl.Value = True Then
If B = True Then
ctl.Locked = True
Else
If ctl <> myctl Then
ctl.Locked = True
End If
End If
Else
ctl.Locked = False
End If
End If
Next ctl
End Sub
|
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?注冊
x
評分
-
查看全部評分
|