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 拆分:如果我将其移动到不同的文件夹,前端安全性会发生变化