2011-03-24 223 views
1

我需要一些代碼,當未選中某個複選框時,它將更改我窗體的背景顏色,並在選中時將其恢復爲其原始顏色。當我選擇一個值時,我爲複選框選擇的代碼當前鎖定了一個組合框。下面更新後更改窗體背景顏色的VBA代碼

Private Sub AccessKeyNo_AfterUpdate() 
If MsgBox("Do you want to assign Access Key " & Me.AccessKeyNo & "?", _ 
     vbYesNo) = vbYes Then 
    Me.GuestAccessKeyID = Me.AccessKeyNo 

    If Me.Dirty Then Me.Dirty = False 
    Me.AccessKeyNo.Requery 
    Me.AccessKeyNo = Null 

    Me.MyCheckBox = IsNull(Me.GuestAccessKeyID) 
End If 
End Sub 

回答

5

在標準模塊實施例(未形式模塊 - 常數的範圍將僅限於形成,因而你將無法再使用它們):

Public Const colorBlue_Cornflower = "15714765" 
Public Const colorTan_Encarnacion = "11398133" 

現在在表格的模塊中:

Dim colorThis as String, booWhatever as Boolean 

booWhatever = Me.MyCheckBox ''Use of the variable can prevent problems 

If booWhatever Then 
    colorThis = colorBlue_Cornflower 
Else 
    colorThis = colorTan_Encarnacion 
End If 

subFrm.Form.Section(acDetail).BackColor = colorThis 
subFrm.Form.Section(acHeader).BackColor = colorThis 

subFrm.Form.Repaint 
+0

謝謝,但你能告訴我在哪裏Public Const colorBlue ....會去我的代碼? – Edmond 2011-03-25 15:15:55

+0

它只需要進入標準模塊的標題區域。不是表單模塊,我很抱歉沒有明確說明。分配常量只是一種方便,但是由於我將這種更改應用於其他表單,實際上它不僅僅是方便。您可能需要對「subFrm」進行一些說明。以及... – Smandoli 2011-03-25 15:20:50