【问题标题】:Display Button on Form (Continuous) Depending on record表单上的显示按钮(连续)取决于记录
【发布时间】:2019-07-13 18:16:58
【问题描述】:

我有一个以连续形式显示的记录列表。我也在这种形式中放置按钮。

IE 我在列表上有一个“考试”列表我有每个考试的按钮,例如删除按钮、编辑按钮等等。仅当考试设置了某个变量时,我才想添加另一个按钮。

记录集示例

| Key | ExamName    | ExamLocation | ExamDate | ExamComplete |
|-----|-------------|--------------|----------|--------------|
| 1   | Test Exam 1 | TX           | 10/2/19  | Y            |
| 2   | Test Exam 2 | SC           | 10/4/19  | Y            |
| 3   | Test Exam 3 | AL           | 10/29/19 | N            |
| 4   | Text Exam 4 | WA           | 10/22/19 | Y            |

因此,对于为 ExamComplete 设置了“Y”的每条记录,我想显示一个按钮,但不想为带有“N”的记录显示一个按钮

我已经对“onCurrent”和“onLoad”事件进行了胡闹,但没有成功。

示例代码

If me.ExamComplete.Value = "Y" Then
    Me.BtnClickOpen.visable = TRUE
ELSE
    Me.BtnClickOpen.visable = FALSE
END IF 

有什么想法吗?

【问题讨论】:

  • onCurrent 应替换为 Private Sub Form_Current( )
  • 您不能使用按钮来执行此操作,因为它们未绑定到字段,例如文本框。如果您隐藏一个,这将导致所有按钮的行为相同。您可以使用带有颜色按钮的文本框(文本颜色 = 背景颜色)并在其上使用 cobditional 格式(' enabled = ExamComplete = "Y"' )
  • “没有成功”是什么意思 - 错误信息,错误的结果,没有任何反应?表单标题部分中有按钮吗? ExamComplete 是 Yes/No 字段类型吗?
  • @June 按钮为连续形式,修改一个其他的也修改。它们只是在详细信息部分重复的一个按钮实例。
  • 没有明确说按钮在细节部分,而是推断出来的。如果按钮在 Header 中,则仅显示一个按钮实例,并且 BtnClickOpen 的状态将取决于具有焦点的记录。

标签: ms-access


【解决方案1】:

在表单标题部分放置按钮。如果 ExamComplete 是 Yes/No 字段类型,请不要将参数放在引号内。无论字段类型如何,单行都是可能的 - 对于是/否,只需引用该字段。

Me.BtnClickOpen.Visible = Me!ExamComplete

当然需要当前事件中的代码,但也可能在更新后的检查完成复选框中。

只有一个按钮,因此 VBA 设置属性会影响按钮的所有实例 - 每条记录都将显示相同。它可以在“详细信息”部分工作,但可能会分散用户的注意力并让用户感到困惑,因为所有按钮实例都会消失/出现。替代方法是带有条件格式(无 VBA)的文本框来模拟详细信息部分中的按钮。文本框将始终可见(除非规则更改背景颜色以匹配表单以使其融入其中)并且每个记录单独动态启用/禁用。

【讨论】:

    【解决方案2】:

    刚刚发现Detail_Paintevent 可用于以连续形式Detail-Section 的 Buttons(和其他没有FormatConditionsproperty 的控件)的条件格式。虽然不能设置可见属性,但是可以设置.Transparent属性。由于Button_Clickevent 也会在透明按钮上触发,您必须检查点击事件是否应该执行代码。

    Private Sub Detail_Paint()
      Me.BtnClickOpen.Transparent = Not Me.ExamComplete.Value = "Y"
    End Sub
    
    Private Sub BtnClickOpen_Click()
      If Me.ExamComplete.Value = "Y" Then
        ' button visible(not tranparent), execute button-click code
      Else
        'button transparent, do nothing
      End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 2014-07-08
      相关资源
      最近更新 更多