【问题标题】:Troubles with an MS-Access Listbox linked to a YES/NO type field链接到 YES/NO 类型字段的 MS-Access 列表框的问题
【发布时间】: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 我不知道这里是否允许这样做,但有什么方法可以联系你吗?想向您解释我正在创建的系统,以便您可以告诉我您将如何以不同的方式进行操作。 (看到我使用的两个列表框方法令人费解)

标签: ms-access listbox vba


【解决方案1】:

万一以后有人遇到这个问题并且真的需要答案,这就是我解决这个问题的方法......

我没有使用 list2.value 属性(参考有问题的代码),而是使用了指向列表框第一列的 list.itemdata(0)

它就像一个魅力。

【讨论】:

  • 感谢您花时间发布您的解决方案。
【解决方案2】:

您是否检查过您的列表框属性值。 在属性窗口上,然后选择数据选项卡,您需要检查以下属性:

  1. 行源类型,应该是表/查询
  2. Row Source,填写你对应的表名
  3. Bound Column,应填写您希望在列表框上查看的表格的列索引

【讨论】:

  • 更新表格后是否刷新了表单?
  • 不...我只是重新查询列表框
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
相关资源
最近更新 更多