【问题标题】:Setting textbox properties on continuous form在连续表单上设置文本框属性
【发布时间】:2015-04-24 17:50:28
【问题描述】:

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

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

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

这可行,但它将文本框 (txtElementID) 的所有实例设置为启用 = false。我想要发生的是 txtElementID 根据组合框 cboElementType 的选择为详细信息部分中的每一行启用不同的设置。因此,如果 cboElementType = "Contract Shrink" 在滚动详细信息部分的第 1 行,则该行的 txtElementID.Enabled 将设置为 false。如果 cboElementType = "Cost Group" 在滚动详细信息部分的第 2 行,那么我希望 txtElementID.Enabled 在详细信息部分的第 1 行为 False,而 txtElementID.Enabled 在第 2 行为 True。

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

【问题讨论】:

    标签: ms-access vba ms-access-2010


    【解决方案1】:

    您不能像以前那样通过 VBA 进行操作,您需要使用条件格式,您可以选择设置 Enabled 属性。

    【讨论】:

      【解决方案2】:

      试试 Form_Current() 事件

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

      【讨论】:

        【解决方案3】:

        我一直在寻找如何以连续形式访问个人记录的方法,我愿意说这是不可能的,但我有一个技巧,我想在这里分享一下。我有一个投资数据库,用户进入并撰写提案,然后召开会议,项目要么被批准(给钱)要么被取消。但是,项目可以处于更多状态,提案,执行等,但在此阶段只能发生批准/取消。我在 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
        

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

        【讨论】:

          猜你喜欢
          • 2010-12-13
          • 1970-01-01
          • 2011-04-12
          • 1970-01-01
          • 2013-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多