我遇到了Access Combobox的问题,这可能是一个糟糕的主意,或者是对该工具的不当使用。
比方说,我有一个表单,其中显示了“报告”的元数据(报告中日常常见的内容,例如报告人,项目,目标到期日,预期总成本等),并带有一个“连续”正在报告的订单项子形式(例如人工成本,材料,间接费用等)
在后端,我有2个表来表示。 “元数据”表和“订单项”表。当尝试捕获要报告的单个项目时,报告者可以自由地按其认为合适的方式命名该项目,但是,在系统中,我们希望将该报告者项目命名映射到我们的内部项目命名中。
为此,我有一些帮助程序表和一个映射表来创建此链接。一个“内部订单项”表,一个“数据类型”表和一个“订单项映射器”表。
结构如下:
-具有ID,名称,Metadata_ID和数据(典型的Excel格式)的“订单项”表
-带有ID的“元数据”表和所有报告共有的元数据
-具有ID和名称的“内部订单项”表
-具有Internal_ID,LineItem_ID和DataType的“订单项映射器”表
-具有ID和名称的“ DataType”表
继续我遇到的困难。
我想在子窗体的每一行中显示一个组合框,并且下拉列表将列出可以选择的内部名称。我以为可以通过使用未绑定的框来做到这一点,但是发现每行将获得同一框的副本(因此可以同时更改所有行的选择)。
然后我尝试使用ControlSource将框绑定到记录集,但是这样做时更改了ID号(显然不行)。
然后我考虑将框绑定到Mapping表本身,但也不知道如何将其与记录集耦合。
我想做的就是将此框绑定到记录集,而不允许它更改“列表项”表中的任何数据,因为此框用于更改映射表。然后,我可以使用OnChange事件使用适当的数据填充或更新映射表。
是否可以创建这样的绑定(控件绑定到记录集,使我可以获取LineItem ID,但无法更改记录集,同时仍允许用户与其交互)?还是有更好的方法来解决此问题?
答案 0 :(得分:0)
事实证明,我对数据模型所做的愚蠢操作会导致麻烦。
但是缺点是我不正确地将所有FK放在单个表中,试图形成一种“映射”表形式。从那以后,我已经纠正了结构,并使组合框按预期工作。