在连续表单上设置文本框属性

时间:2015-04-24 17:50:29

标签: access-vba ms-access-2010

我正在使用Access 2010表单,用户可以通过组合框选择表单标题中的记录,然后在表单的详细信息部分中构建与所选记录相关的元素。表单的默认视图设置为连续表单。

表单详细信息部分中的一个控件是组合框控件。我想要做的是根据组合框中的选择将表单的同一行上的文本框的enabled属性设置为false。我正在运行的代码是:

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

这样可行,但它将文本框的所有实例(txtElementID)设置为enabled = false。我希望发生的是txtElementID根据组合框cboElementType的选择为详细信息部分中的每一行启用不同的启用设置。所以,如果cboElementType ="合同收缩"在滚动详细信息部分的第1行上,该行的txtElementID.Enabled将设置为false。如果cboElementType =" Cost Group"在滚动详细信息部分的第2行,然后我想在详细信息部分的第1行将txtElementID.Enabled设置为False,在第2行将txtElementID.Enabled设置为True。

任何人都可以确认或否认这可以做到,如果可以做到,你会如何建议完成它?无论这种方式如何,谢谢你的帮助。

3 个答案:

答案 0 :(得分:0)

你不能像以前那样通过VBA这样做,你需要使用条件格式,你可以选择设置Enabled属性。

答案 1 :(得分:0)

尝试Form_Current()事件,如

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

答案 2 :(得分: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

我有几天的搜索和顿悟,所以我想我会分享。

相关问题