【发布时间】:2011-09-30 15:20:47
【问题描述】:
这个问题难倒我,因为我正在做的事情看起来很简单。
我有一个未绑定的表单 (frmAdmin),其中包含一个列表框 (lstUsers) 和一个包含列表框 (lstUsergroups) 的子表单。
lstUsers 未绑定并显示用户名列表(行源是用户表与users.fk__ContactID = contacts.pk__ContactID 上的联系人表左连接,因此我可以显示要显示的名称)
子表单绑定到用户表并具有过滤器pk__UserID = Forms!frmAdmin!lstUsers
lstUsergroups 显示绑定到用户表中fk__Usergroup 字段的用户组列表。
唯一涉及的 VBA 是 lstUsers 上的单击事件,它重新查询子表单。
当我从lstUsers 中选择一个用户时,子表单列表框显示用户的用户组已选择,但如果我选择不同的用户组,然后选择不同的用户或关闭表单,我会收到写冲突“此记录已由另一个用户”等。
这看起来很简单!什么可能导致写冲突?没有打开其他表单,用户表是一个链接的 SQL Server 表,但没有触发器应该写入任何内容。它只是一个表单、一个子表单和一个点击事件。
【问题讨论】:
-
你为什么使用列表框而不是表单/子表单?我永远不会用子表单上的列表框来模拟您所描述的内容(尽管肯定有可能是组合框)。
-
我正在使用子表单,这对于我希望 UI 的工作方式很有意义。应该有一个用户列表和一个用户组列表。当我选择一个用户时,他们的用户组应该被选中,然后我应该能够通过选择用户组列表中的另一个项目来更改他们的用户组。据我所知,这不是控件类型的问题,但如果我错了,请告诉我。
-
表单和子表单非常适合列表,其中的数据是可编辑的,而列表框则不然。这完全取决于您想要做什么,但是作为父级的连续表单(可能带有用于导航的列表框)和数据表子表单(没有列表框,但用于选择用户的组合框)将是正常的 UI,似乎我。