2015-04-24 34 views
0

我正在使用Access 2010窗體,用戶可以通過組合框在表單標題中選擇一條記錄,然後在窗體的詳細信息部分構建與所選記錄相關的元素。表單的默認視圖設置爲連續表單。以連續形式設置文本框屬性

窗體的詳細部分中的控件之一是組合框控件。我想要做的是根據組合框的選擇,將表單的同一行上的文本框的enabled屬性設置爲false。我正在運行的代碼是:

If Me.cboElementType = "Contract Shrink" Then 
    Me.txtElementID = "" 
    Me.txtElementID.Enabled = False 
EndIf 

這可以工作,但它將文本框(txtElementID)的所有實例設置爲enabled = false。我想要發生的是txtElementID根據組合框cboElementType的選擇爲detail部分中的每一行設置了不同的啓用設置。因此,如果滾動細節部分的第1行上的cboElementType =「合同收縮」,則該行的txtElementID.Enabled將設置爲false。如果滾動細節部分的第2行的cboElementType =「Cost Group」,那麼我希望txtElementID.Enabled在細節部分的第1行上爲False,並且txtElementID.Enabled爲第2行上的True。

Can任何人都確認或否認這可以完成,如果可以完成,你會如何建議完成?無論這種方式如何,感謝您的幫助。

回答

0

你不能像通過VBA那樣做,你需要使用條件格式,你可以選擇設置Enabled屬性。

0

嘗試Form_Current()事件像

Private Sub Form_Current() 
If Me.cboElementType = "Contract Shrink" Then 
    Me.txtElementID = "" 
    Me.txtElementID.Enabled = False 
EndIf 
end sub 
0

我一直在尋找天如何在連續形式訪問的個人記錄,我願意說,這是不可能的,但我有一個絕招我雖然會在這裏分享。我有一個投資數據庫,用戶進入並撰寫提案,然後召開一次會議,其中任何一個項目被批准(給予資金)或被取消。但是,項目可以有更多的州,建議,執行等,但只有批准/取消才能在此階段發生。我在Project表中創建了一個MockBool字段。我把連續狀上,當窗體關閉我運行此:

rs_frm=me.recordset 
rs_frm.movefirst 
while not(rs_frm.eof) 
    if rs_frm("MockBool") then 
    rs_frm.edit 
    rs_frm("ProcessStatus")="Cancelled" 
    rs_frm("MockBool")=false 
    rs_frm.update 
    end if 
    rs_frm.movenext 
wend 

我有搜索的天,突然靈光一現,所以我想我也有同感。