我一直在搜索,似乎这是MS Access的一个限制,所以我想知道其他人在这个难题中找到了哪些创意解决方案.
如果您有一个连续的表单,并且您希望某个字段是特定于该行的选项的组合框,则Access无法提供; 组合框行源仅在表单的开头查询一次,因此显示表单其余部分的错误选项.
当然,我们所有尝试的下一步是使用onCurrent事件来重新查询组合框,这实际上限制了给定行的选项.但是,在这一点上,Access变得疯狂,并且为每一行重新查询所有组合框,结果通常是消失并在其他行中重新出现选项,这取决于他们是否选择了对于该行有效的选项.当前记录的行来源.
我找到的唯一解决方案是始终列出所有可用选项.那里有创意答案吗?
编辑此外,我应该注意组合框的原因是将查询作为查找表,需要隐藏和存储实际值,同时显示人类可读的版本...组合框行中的多个列资源.因此,将限制更改为列表没有帮助,因为不在当前行源查询中的id将不具有匹配的人类可读部分.
在这种特殊情况下,连续形式很有意义,所以请不要告诉我这是错误的解决方案.我要求任何有创意的答案.
Gil*_*gan 15
我也讨厌Access,但你必须玩你所处理的牌.连续表单在Access中是一件很棒的事情,直到你遇到任何类型的复杂性,就像在这种情况下一样.
这是我在遇到这种情况时会做的事情(之前我已经实现过类似的解决方法):
在表单上放置一个UNBOUND组合框.然后为要编辑的字段放置一个BOUND文本框.
确保组合框隐藏在textBox后面(不可见,只是隐藏).
在OnCurrent事件中,使用必要的数据填充listBox.继续并"限制列出"它.
在textBox的OnEnter或OnClick事件中给出组合框焦点.这将把组合框带到最前沿.当焦点离开组合框时,它将再次隐藏自己.
在组合框的AfterUpdate事件中,文本框的值等于组合框的值.
根据您的情况,可能还有其他一些细节需要解决,但这应该或多或少地实现您的目标,而不会增加太多的复杂性.