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。
我有一个表单,为了验证它,我正在使用 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。