我有一个表单并验证它,我正在使用eval()。背景是,我在表中定义了规则。这些规则包含占位符。编译规则,然后eval()应该检查它的真或假。
一条规则的一部分包含对列表框值的检查。我发现这是问题所在。我可以把它减少到以下几点:
Application.Forms("frmDMAE").lstHistory.Column(6, Application.Forms("frmDMAE").lstHistory.ListCount - 1)
返回ie,
eval("Application.Forms(""frmDMAE"").lstHistory.Column(6, Application.Forms(""frmDMAE"").lstHistory.ListCount - 1)")
返回NULL - 但我无法找出原因!?
eval("Application.Forms(""frmDMAE"").lstHistory.Column(6, 5)")
也返回NULL!?第6列第5行肯定包含数值。
同样将以下内容粘贴到调试窗口中会显示" 2"作为两种情况下的返回值:
Application.Forms("frmDMAE").lstHistory(6, Application.Forms("frmDMAE").lstHistory.ListCount - 1)
Application.Forms("frmDMAE").lstHistory.Column(6, 5)
任何人都知道???我不再有钱了。
[编辑]
安德烈的解决方案。只需在Eval()中更改.Column属性的索引即可。使用.Column(rowindex,colindex)代替.Column(colindex,rowindex)!
[/编辑]
非常感谢, 托马斯
答案 0 :(得分:2)
哇。多么奇怪的事。
显然,当.Column
与Eval()
一起使用时,您必须切换? Forms!myForm!myList.Column(5,1)
3600
? Eval("Forms!myForm!myList.Column(5,1)")
Null
? Eval("Forms!myForm!myList.Column(1,5)")
3600
属性的参数(或数组索引)。
我的列表框有2行7列,第6列(= 5列)中有一个数字。
for
我真的不知道该怎么做。
注意:我使用的是Access 2010。