参考子表单

时间:2015-05-01 10:02:40

标签: vba ms-access access-vba

我有一个子表单,它大量使用条件格式化来清除不能包含数据的单元格,并突出显示已由用户调整的单元格。子表单是数据表。

这一切都很好,除了应用格式的滞后,有时甚至不会更新,直到用户将鼠标悬停在单元格上。

我想尝试的是在VBA中应用格式,而不是使用内置的条件格式,因为我希望表单加载需要几秒钟但是一旦应用了所有格式,我目前得到了延迟。

所以我所坚持的是如何将子窗体上的控件绑定到填充它的视图中的特定记录。例如,我可以使用以下代码:

Dim ctrl As Control

For Each ctrl In Me.Controls
    MsgBox ctrl.Name & " : " & ctrl.Value
Next ctrl
例如,

可能会显示" RowNumber:010",因此我可以识别控件所关联的记录,但是当它说出" TotalUSD:1,234,567.89"时,我会无法知道哪个记录与之相关,因此无论是否应该应用格式化。

有没有更好的方法来实现这一点,我想理想的是能够将每个ctrlForm.Recordset中的相应记录相关联?

更新

下面的屏幕截图显示了当前实现的条件格式,以及我尝试使用VBA而不是条件格式实现的内容。 enter image description here

1 个答案:

答案 0 :(得分:0)

我没有关于您的实施的深入信息,所以这里是我在实施中使用的一般性建议。

您应该在表格中添加某种区别列。例如,我曾经有一个显示项目和员工的表格。区分列包含每个项目的布尔值“True”,每个员工的“False”。根据这些信息,我可以相应地进行格式化。

我的建议:在记录集表中添加整数区分列。值“0”将是一个普通列,“1”将用于灰色,“2”用于用户输入。

在Form_Load事件中,您必须遍历所有控件并设置格式。