MS-Access:在分隔符上拆分内容并与其他表连接

Posted

技术标签:

【中文标题】MS-Access:在分隔符上拆分内容并与其他表连接【英文标题】:MS-Access: Split content on delimiter and join with other table 【发布时间】:2015-12-16 10:44:01 【问题描述】:

我正在使用 MS-Access 2007,需要进行查询。 我无法修改架构以达到所需的结果。 我需要将 mainTable 的“RelatedMaster”(逗号分隔的 ID)拆分并加入到 masterTable 中的“名称”字段(作为结果中的逗号分隔的名称)。

表 1:masterTableID    名称 1        N1 2        N2 3        N3

表 2:mainTableID    名称    RelatedMaster 1        M1        1,2 2        M2        1,3 3        M3        2,3

必填结果:resultQueryID    名称    RelatedMaster 1        M1        N1,N2 2        M2        N1,N3 3        M3        N2,N3

请指导我如何解决问题。谢谢

【问题讨论】:

【参考方案1】:

您现在意识到,这是一个糟糕的设计,但您可以使用辅助函数:

Public Function GetNs(ByVal MasterIds As String) As Variant

    Dim MasterValues As Variant
    Dim Item As Integer

    MasterValues = Split(MasterIds, ",")
    ' Lookup Name one by one.
    For Item = LBound(MasterValues) To UBound(MasterValues)
        MasterValues(Item) = DLookup("[Name]", "[Table 1]", "ID = " & MasterValues(Item) & "")
    Next

    GetNs = Join(MasterValues, ",")

End Function

当然,对于大型表 1,您可以将其作为记录集打开并查找值。

【讨论】:

我知道架构不好,但我最初是由架构师设计的,现在我们可以在访问中使用功能或在前端使用类似代码。谢谢,它成功了,我只是希望我们能以某种方式使用 split 和 joins 来实现这一点!

以上是关于MS-Access:在分隔符上拆分内容并与其他表连接的主要内容,如果未能解决你的问题,请参考以下文章

MS-Access/SQL 拆分:如果我将其移动到不同的文件夹,前端安全性会发生变化

将字符串拆分为单词并与其他数据重新连接

如何拆分列及其内容?

怎么用excel把一列变成两列

将分隔文件 (.csv) 中的行导入 MS-Access 表

MS-Access查询以在另一列中收集逗号分隔的结果