【问题标题】:Hiding certain fields in VBA Code (Microsoft Access)隐藏 VBA 代码中的某些字段 (Microsoft Access)
【发布时间】:2014-06-25 19:45:17
【问题描述】:

我的 Microsoft Access 数据库出现问题,我已将一些信息标准化,但现在无法正确显示。

我根据公式计算费用,但我需要隐藏 2 个字段并根据 FeeGroup 显示准确的字段。

我为 Report_Load 事件编写了以下 VBA 代码,但它似乎不起作用。

Private Sub Report_Load()

MsgBox "Case X"

Select Case Report_FeeGroupBox
    Case 1
        FullPrice_Months.Visible = False
        FullPrice_Weeks.Visible = False
        MsgBox "Case 1"
    Case 2
        FullPrice_Months.Visible = False
        FullPrice_Days.Visible = False
        MsgBox "Case 2"
    Case 3
        FullPrice_Days.Visible = False
        FullPrice_Weeks.Visible = False
        MsgBox "Case 3"
End Select

End Sub

如何根据该行的费用组将其更改为更新此报告中的每一行?

费用组根据数量工作几天、几周和几个月。如果费用组不正确,我需要隐藏其他框,基本上所有费用组都显示出来。

'Case X' 显示为一条消息顺便说一句,所以回调似乎确实有效。

【问题讨论】:

  • 如果是连续形式,则需要使用条件格式。
  • 谢谢,但是如何在此报告中应用具有条件格式的 VBA 代码?
  • 你有没有想过使用 switch 语句(或类似的东西)将费用全部放在一列中,然后显示那一列?这样您就不必担心条件格式。
  • 有关更多调试选项以自行查找问题:如果“案例 X”显示但“案例 1”(或 2 或 3)未显示,我建议您查看 Report_FeeGroupBox 值是什么.只需使用断点,看看代码在这一点上做了什么(并让我们知道)。最好添加一个“Case Else”。

标签: database ms-access vba


【解决方案1】:

您可以只使用一个字段来显示金额,然后将其记录源设置为 Report_Load 中适当的表字段。

另外,请确保将文本框的名称更改为字段名称以外的名称,否则可能无法正常工作。约定是在文本框名称前加上“txt”。

Private Sub Report_Load()

MsgBox "Case X"

Select Case Report_FeeGroupBox
    Case 1
        txtFullPrice.RecordSource = "FullPrice_Days"
        MsgBox "Case 1"
    Case 2
        txtFullPrice.RecordSource = "FullPrice_Weeks"
        MsgBox "Case 2"
    Case 3
        txtFullPrice.RecordSource = "FullPrice_Months"
        MsgBox "Case 3"
End Select

End Sub

【讨论】:

    猜你喜欢
    • 2022-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 2021-10-15
    相关资源
    最近更新 更多