【发布时间】:2014-02-05 21:33:06
【问题描述】:
我有一个带有 2 个列表框(list1 和 list2)的表单,显示来自 2 个 YES/NO 类型字段的值。在表格中,字段数据由复选框表示,但在列表框中显示为 True/False
我还有 2 个带有 Yes 和 No 值的组合框,用于填充/编辑表中的字段。
我正在尝试编辑此表单的 VBA 代码,以使 2 个列表框(和字段中的值)不能同时为真。也就是说,如果用户在 combo1 上选择 true 并点击保存,程序将检查 list2 中的值,如果它也是 true,则显示错误消息并退出 sub。
我发现列表框中的值实际上保存为 0 和 -1,但我的问题是列表框的值即使在更改表上的值后也不会改变。即,即使当表字段上的值更改时,真/假值也会相应更改,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
...
(...表示该位前后有代码)
【问题讨论】:
-
我有点疑惑为什么你需要两个列表框控件和两个组合框控件。正常的 UI 设计将具有由复选框控件表示的是/否字段。如果您真的想使用“真/假”或“是/否”组合框控件,那我想这很好,但列表框控件有什么用途?
-
@GordThompson 我使用列表框来保存对表的查询,从而显示特定项目的是/否字段。使用复选框不允许我使用查询(或者我可能不知道如何)
-
@GordThompson 我不知道这里是否允许这样做,但有什么方法可以联系你吗?想向您解释我正在创建的系统,以便您可以告诉我您将如何以不同的方式进行操作。 (看到我使用的两个列表框方法令人费解)