我目前正在改变我的MS Access数据库,使其以客户端ID而不是客户端名称为中心。但是我的所有表单仍然基于客户名称。我需要将其更改为基于客户端ID,但我希望它仍然只显示给用户的客户端名称。
在进一步讨论之前,我应该解释两个相关的表格:
ClientTable:
- ClientID(PK)
- ClientName(索引,无重复)
EntityTable:
- EntityName(CK,没有重复)
- ClientID(CK,允许重复)
- ClientName(我过去的结构的遗留物,我想我一旦把这个问题整理出来就不需要这个)
关键关系:一个客户有很多实体
我的复合键(CK)也有很好的理由,但我不会解释 - 我的整个结构比上面显示的要复杂得多。
回到表格。目前我有一个“实体”表单,其中包含一个EntityName文本框和一个ClientName下拉框。
我想要发生的是,客户端名称下拉框在视觉上和功能上对用户来说是相同的(即,在创建新实体时,用户选择客户端名称),但需要发生的是它实际上是在选择客户端ID并将其与该记录相关联。
我认为这是一个相当常见的问题,但在我的浏览中没有找到解决方案。有什么想法吗?
答案 0 :(得分:2)
这可以通过将行源更改为:
来简单地解决SELECT ClientID, ClientName & SomeIdentifierForDups FROM ClientTable
改变......
Control source : ClientID
Column count : 2
Column widths : 0; 2
其中ClientID引用表单的绑定表。