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

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

表 1:masterTable
ID    名称
1        N1
2        N2
3        N3

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

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


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

【问题讨论】:

    标签: ms-access join ms-access-2007


    【解决方案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 来实现这一点!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 2013-09-08
    • 2013-02-03
    • 2014-06-07
    相关资源
    最近更新 更多