【发布时间】:2020-07-13 21:11:13
【问题描述】:
我有一个包含多选列表框的表单,用户可以根据需要勾选任意数量的选项,然后点击“保存”按钮,该按钮将表单字段和勾选的选项保存在各自的表格中.
一切正常,直到用户取消选中之前保存的选择。
我尝试了几件事,包括刷新表单和记录集,但均无济于事。
在测试以找到解决方案时,我注释掉了与表单的保存按钮相关的每一行 VBA 代码。单击此按钮时,注释掉的代码显然没有任何反应,但是如果我尝试使用窗口的“x”按钮关闭表单,则会收到一个消息框,指出“记录已被删除”
我不知道在哪里看这一点,我已经尝试压缩和修复数据库,也有负面结果。
我没有要发布的代码,因为无论我尝试运行什么代码,我都会收到错误,一个完全空的子程序仍然会给我错误。
同样,这种情况仅发生在用户取消选中之前已被选中的选择时。
这是表单的屏幕截图:
红色的列表框是罪魁祸首。
用户可以编辑表单上的每个字段,一切正常,用户甚至可以通过勾选项目从列表框中“添加”选择,它会保存它们,并在下次记录时显示它们已查看。
当用户取消选中之前选中的选项之一时会出现问题。
列表框的详细信息:
- 它是一个多选列表框,由使用列表框向导创建的“查找”填充
- 所选值以逗号分隔列表的形式保存在字段中
- 字段本身是另一个表的查找,允许多个值
在这一点上,我什至不确定我是否正确地解释了自己,我已经在“兔子洞”中走得太远了!
如果需要任何澄清声明,请尽管询问。
【问题讨论】:
-
如果你打开表单,什么都不做,然后点击关闭,你得到一个错误?表单控件究竟是如何绑定到记录集的?您是否尝试过 REQUERY 而不是 REFRESH?列表框的“ControlSource”是什么?
-
@WayneG.Dunn,我已经编辑了我的问题来回答你的一些问题。是的,我尝试了 REQUERY,我只是收到一个错误,告诉我还没有加载记录。控制源是存储在此表单编辑的表中的查找字段。
-
请解释一下您的“列表框”到底是什么。是定制解决方案的“ListView”还是“ListBox”。您的复选框列是如何插入的?任何代码来构建它?
-
我使用了表单设计功能区上的列表框向导,当被要求输入值时,我选择了一个已经创建的表,其中包含您在屏幕截图中看到的值,然后选择了完成。创建后,我将列表框的源分配为“tow”表中的相应字段。拖车表中的该字段是一个“查找”字段,我也是使用内置查找向导创建的,允许多个值。我没有创建它的任何代码,只是我使用向导时所做的任何访问。
-
这是“绑定”形式还是未绑定形式?如果绑定,那么什么代码处理列表框选择?您将列表框的“ControlSource”设置为“Tow”表中的字段? (1) 'Tow' 表是否存储了该表单上的所有其他数据? (2) 从未见过链接到表格列的多选列表框 - 你确定吗?没有代码?最后,您在“Tow”表中有一个“查找”字段,但它基于什么?同一张桌子,还是不同?
标签: ms-access vba ms-access-2010