2015-04-24 32 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 

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