我正在开发一个传统的Access CRM,为此我负责添加一些额外的功能以支持我们,直到我们切换到适当的解决方案。显示来自多个表格的结果
我有一系列的表格表示一个案例和各种类型的案例笔记之间的一对多连接。这些案例笔记都代表特定于给定工作流程的各种类型的信息(即进入我们数据库的电子邮件需要具有特定字段,这与调用不同),因此每种不同类型的案例笔记都由不同的表格。所以,我的表看起来像
- 案件
- ID
- 标题
- 等...
- Case_Emails
- ID
- 案例ID
- 到电子邮件
- 从电子邮件
- 等...
- Case_Calls
- ID
- 案例ID
- 来电电子邮件
- 等...
其中在诸如电子邮件之类的个案注释之间存在一些共享字段。一个需要的功能是根据与案例相关的先前笔记以及默认值(在我们的日常操作中常用的电子邮件地址),将电子邮件地址列表过滤到ComboBox中。
目前,我正在使用VBA打开每个表的查询,然后遍历RecordSet捕获唯一值。但是,如果可能的话,我想从相同的查询中提取这些内容。
我一直在阅读各种类型的JOIN,我不相信他们做我需要的东西。
我可以组合不同表中的某些字段来创建唯一值列表吗?
这不是您可以轻松使用Access或SQL执行的操作。这对我来说看起来像是一个EAV结构,我假定表“Cases”与来自表“Case_Emails”或“Case_Calls”中的至少一条记录相匹配。如果这是真的,最简单的解决方法是将“To Email”和“Caller Email”移动到名为“Email”的“Cases”表中。 “从电子邮件”应该可以保持。一旦表格规范化后,应该很容易找到唯一的电子邮件地址。虽然我不会循环记录集。使用SQL。 'SELECT DISTINCT Cases。[Email] FROM Cases;' – MoondogsMaDawg
看看UNION – Rene
@ChristopherD .:它看起来不像EAV。仅仅因为两个实体具有共同的属性并不一定意味着该属性应该被提取到共享实体中(例如名称,价格,数量等)。 – onedaywhen