如何调用Form的类函数或从条件格式表达式访问其属性

时间:2017-07-06 20:16:35

标签: access-vba expression conditional-formatting ms-access-2003

在Access 2003中的Form类上具有以下代码:

Public currentId As Integer

Private Sub Form_Current()
  Me.currentId = Me.id
  ' The following works fine
  Debug.Print Forms!my_form_name.currentId
End Sub

...和一个相同连续形式的未绑定文本框(在设计视图中创建),如何从条件格式表达式访问.currentId属性?

我想使用未绑定的文本框通过将表单的.currentId值与其自己的记录的实际[id]进行比较来突出显示当前选中的记录。

我尝试过的一些表达方式:

[id] = Me.currentId
[id] = Me!currentId
[id] = Me.Form.currentId
[id] = Forms!my_form_name.currentId
[id] = Forms!my_form_name!currentId
[id] = Forms!my_form_name!Form.[currentId]
[id] = Forms!my_form_name!Form!currentId
[id] = Forms!my_form_name!Form[currentId]
[id] = Forms!my_form_name![currentId]
[id] = Forms![my_form_name].[currentId]
[id] = Forms![my_form_name]![currentId]

......等等等。基本上我能想到的任何变种。

我也试过创建一个Public Function getCurrentId(),但这也没有把我带到任何地方。当我在表达式中添加括号时,它甚至抱怨,如:

[id] = Forms!my_form_name.getCurrentId()

...我或许应该注意这些更复杂的表达式可能不允许用于条件格式化表达式。

那么,我错过了什么吗?或者,这些条件格式化表达式中是否真的根本无法引用除当前记录字段之外的任何内容?

可能需要提及的另一个细节是Access 2003在我使用的荷兰语版本的条件格式表达式对话框中将Forms部分本地化为Formulieren

1 个答案:

答案 0 :(得分:1)

如果您的详细信息行上有一个名为say txtCurrRec的隐藏的未绑定文本框,请使用

中的当前事件进行设置
Me.txtCurrRec = Me.Id 

然后条件格式化中需要的只是

Expression is [txtCurrRec] = [YourIDField]