MS Access 子表单的多个分离条件
Posted
技术标签:
【中文标题】MS Access 子表单的多个分离条件【英文标题】:Multiple Disjunctive Conditions for MS Access Subforms 【发布时间】:2019-09-05 19:22:06 【问题描述】:在配置 MS Access 子表单时,您可以将父表单中的主字段链接到子表单中的子字段。您也可以有多个链接,但多个链接是连接的,例如拥有 2 个链接只会产生同时满足链接 1 和链接 2 的行。
我正在尝试使用多个分离链接(链接 1 或 链接 2)。
为了提供更多上下文,我有一个表来表达两个对象之间的关系,因此它包含两个引用同一个表的外键。在子表单中,我想包含对象 ID 与任一外键匹配的行。
【问题讨论】:
我怀疑这是可能的。为什么要将 UNION 查询作为 RecordSource 表单?查询不可编辑。 @June7 我在我的问题中提供了我的理由。此外,我确信我不是唯一一个拥有与父表单的关系比 Access 链接系统更复杂的子表单的人。 联合查询是您解决问题的尝试,但您并不真正想要联合,如果您想要可编辑的数据集,当然不是。答案为表格提供了有效的解决方案。您是否考虑过如何在报告中呈现数据?这就是 UNION 可能有用的地方。 @June7 当我使用“联合”这个词时,我指的是行为而不是实际的 SQL 运算符。为了清楚起见,我编辑了标题。很抱歉对于这个误会。但是,是的,我确实希望子表单是可编辑的,这就是为什么我在下面发布的解决方案是理想的。 【参考方案1】:这是不可能的。
将主/子链接字段视为过滤器或内连接。
【讨论】:
【参考方案2】:正如其他人所提到的,除了内部连接之外,不可能使用 MS Access 的非常基本的链接系统来做任何事情。不过,我设法想出了一个简单的解决方法:使用父表单的Current
事件来更新子表单的RecordSource
。
此解决方案是通用的,可用于与父表单具有更复杂关系的子表单:
Private Sub Form_Current()
Dim sql as String
'This is the SQL statement for my situation, but you can write anything.
sql = "SELECT * FROM SourceTable WHERE fk1 = " & Me![ID] & " OR fk2 = " & Me![ID]
SubformName.Form.RecordSource = sql
End Sub
【讨论】:
以上是关于MS Access 子表单的多个分离条件的主要内容,如果未能解决你的问题,请参考以下文章