【问题标题】:Create loop to change background color in table form Access 2007创建循环以更改表格形式 Access 2007 中的背景颜色
【发布时间】:2014-04-17 22:06:22
【问题描述】:

我在访问中创建了一个数据库,其中显示文章列表及其状态在表格子表单中。有 5 种不同的状态选项,我需要它们具有特定的颜色。但在 access 2007 中,我只能使用 3 个条件格式语句(如果算上默认设置,则为 4 个)。

但我需要 5 个。(01、05、06、08、09)。我一直在四处寻找,但我似乎找不到周围的地方。

我一直从这个角度尝试:

If Me.txtArtikelStatus = "05" Then
    Me.txtArtikelStatus.BackColor = RGB(215, 228, 188)
ElseIf Me.txtArtikelStatus = "01" Then
    Me.txtArtikelStatus.BackColor = RGB(219, 238, 243)
ElseIf Me.txtArtikelStatus = "06" Then
    Me.txtArtikelStatus.BackColor = RGB(252, 213, 180)
Else
    Me.txtArtikelStatus.BackColor = RGB(230, 182, 184)
End If

但这就是我所得到的。所有记录现在都是相同的颜色(根据状态 05 为绿色)

我的子表单名称是 fsubAlleArtikelen,它基于名为 qryAlleArtikelen 的查询,该查询基于表 tblZMMPCtblZMAC

状态列称为txtArtikelStatus,是text 列。

我猜我需要创建一个循环,但我对 VBA 的了解还不够,无法创建一个真正有效的循环。

【问题讨论】:

标签: vba loops ms-access-2007 conditional-formatting


【解决方案1】:

使用Select case 声明。

做很多这样的事情要干净得多。您可以选择一些选项,然后像您尝试做的那样有效地执行大型 if/elseif 语句,但代码工作得更好(并且更简洁)。

有关更多文档,请参阅this link

以下是适合您情况的方法:

Select Case Me.txtArtikelStatus

    Case "05"
        Me.txtArtikelStatus.BackColor = RGB(215, 228, 188)

    Case "01"
        Me.txtArtikelStatus.BackColor = RGB(219, 238, 243)

    Case "06"
        Me.txtArtikelStatus.BackColor = RGB(252, 213, 180)

    Case "08"
        Me.txtArtikelStatus.BackColor = RGB(252, 213, 180)
    Case "09"
        Me.txtArtikelStatus.BackColor = RGB(252, 213, 180)

    Case Default
        'this captures everything else

End Select

【讨论】:

  • 也试过了,但所有单元格的颜色仍然相同
  • 我认为问题可能出在表格视图或连续表格视图上。然后都不给我我需要看的东西。在excel中没问题。但是超过 20000 条记录,excel 变得很慢。这就是我切换到访问权限的原因
【解决方案2】:

我在您的代码帖子中认为您正在尝试在连续的子表单中执行此操作。不幸的是,如果您更改某个控件的属性(例如颜色),它将对连续子窗体中的所有同名可见控件执行此操作。我将尝试解释一种解决方法。

1) 创建一个包含 2 列的单独表:一个 ID 列,用于存储“05”、“01”等。下一列将是一个 OLE 对象,您可以在其中存储包含此颜色的图像.

2) 修改表单的数据源,将列 txtArtikelStatus 加入到来自 #1 的 ID 列,并将 OLE 列添加到输出中。

3) 在表单上放置一个“绑定对象框架”,并将其控制源属性设置为 #2 中的 OLE 列。

如果一切正常,那么您现在将看到状态颜色。

【讨论】:

    【解决方案3】:

    谢谢各位。我仍然无法做我想做的事。但目前我调整了我的期望,只留下了其中一个状态,以便我可以使用条件格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多