MS Access:eval() returns NULL 访问 .Column(x, y) 属性

MS Access: eval() returns NULL when accessing .Column(x, y) property

我有一个表单,为了验证它,我正在使用 eval()。背景是,我在 table 中定义了规则。这些规则包含占位符。规则被编译,然后 eval() 应该检查它是真还是假。

一条规则的一部分包含对列表框值的检查。我确定这是问题所在。我可以将其简化为以下内容:

Application.Forms("frmDMAE").lstHistory.Column(6, Application.Forms("frmDMAE").lstHistory.ListCount - 1)

return即 2,

eval("Application.Forms(""frmDMAE"").lstHistory.Column(6, Application.Forms(""frmDMAE"").lstHistory.ListCount - 1)")

returns NULL - 但我不明白为什么!?

eval("Application.Forms(""frmDMAE"").lstHistory.Column(6, 5)")

return也为 NULL!?第 6 列第 5 行肯定包含一个数值。

同时将以下内容粘贴到调试 window 中,在两种情况下都将“2”显示为 return 值:

Application.Forms("frmDMAE").lstHistory(6, Application.Forms("frmDMAE").lstHistory.ListCount - 1) Application.Forms("frmDMAE").lstHistory.Column(6, 5)

有人知道吗???我一毛钱都没有了

[编辑]

Andre 的解决方案有效。只需在 Eval() 中更改 .Column 属性 的索引。使用 .Column(rowindex, colindex) 而不是 .Column(colindex, rowindex)!

[/编辑]

非常感谢, 托马斯

哇。真是奇怪。

显然,当与 Eval() 一起使用时,您必须 切换 .Column 属性 的参数 (或数组索引)。

我的列表框有 2 行和 7 列,第 6 列(= 第 5 列)有一个数字。

? Forms!myForm!myList.Column(5,1)
3600

? Eval("Forms!myForm!myList.Column(5,1)")
Null

? Eval("Forms!myForm!myList.Column(1,5)")
3600

我真的不知道该怎么做。

注意:我使用的是 Access 2010。