我有一个包含2个列表框(list1和list2)的表单,它显示2个YES / NO类型字段的值。在表格中,字段数据由复选框表示,但在列表框中显示为True / False 我还有2个组合框,其中包含Yes和No值,用于填充/编辑表中的字段。
我正在尝试编辑此表单的VBA代码,使得2个列表框(以及字段中的值)不能同时为true。即如果用户在combo1上选择true并命中save,程序将检查list2中的值,如果它也为true,则显示错误消息并退出sub。
我发现这些值实际上在列表框中保存为0和-1,但我的问题是即使更改了表上的值,列表框的值也不会改变。即使True / False值在表字段上的值发生变化时会有所变化,0和1也不会改变(通过msgboxing列表框中的值来找到它),这使得在保存之前无法比较值。
我正在使用的代码示例如下
...
List2.Requery
'MsgBox List2
'MsgBox Combo1
If Combo1 = "True" And List2.Value = "-1" Then
MsgBox "List1 and List2 cannot be TRUE at the same time. Please adjust or cancel edit"
Exit Sub
Else
myr.Edit
myr![Y/Nfield] = Combo1
myr.Update
Set myr = Nothing 'Close the recordeset
End If
...
(...表示此位之前和之后有代码)
答案 0 :(得分:1)
只是因为一个人来到这里,真的需要回答这里我是如何解决这个问题的。
而不是使用list2.value属性(请参阅相关代码)我使用list.itemdata(0)指向列表框的第一列
它就像一个魅力。
答案 1 :(得分:0)
您是否检查了列表框属性值。 在Properties Windows上,然后选择Data选项卡,您需要检查以下属性: