如何查询由函数生成的分隔值列表 (Access)

How to query a delimited value list generated by function (Access)

我有一个模块 sub getFileList(),它生成一个输出以下内容的值列表:

10347 C;12-0605 TPX;12-0713 tpx;13-0915 tpx;13-4304 tpx;1345 c;1375 c;14-4201 tpx;

我想针对此函数构建查询。

在 SQL 视图中,我得到以下内容:

SELECT getFileList("\wwdata\dev\_commons\color","*.jpg") as colors;

现在值列表都在一条记录中。

Colors
10347 C;12-0605 TPX;12-0713 tpx; etc....

什么 function/command 可以使它成为一个列表,每个分隔的项目作为一条记录。

期望的输出。

Colors
10347 C
12-0605 TPX
12-0713 tpx
13-0915 tpx
13-4304 tpx
1345 c
etc....

提前致谢。

就我个人而言,我更愿意将该分隔字符串解析为 Access 中的实际 table,然后 运行 您想要的任何查询。

下面假设已经有一个名为 "tblColors" 的空 table 和一个名为 "Colors" 的 table 短文本字段,这将是解析每个字段的目标“;”将字符串中的项目分隔到 table:

中它自己的记录中
Private Sub Command0_Click()

    Dim myDelimStr As String
    Dim arrayToParse As Variant
    Dim i As Integer
    Dim arrayMsg As String
    Dim db As DAO.Database
    Dim rs As DAO.Recordset

    Set db = CurrentDb
    Set rs = db.OpenRecordset("tblColors")

    myDelimStr = "10347 C;12-0605 TPX;12-0713 tpx;13-0915 tpx;13-4304 tpx;1345 c;1375 c;14-4201 tpx;"

    arrayToParse = Split(myDelimStr, ";", -1, vbTextCompare)

    For i = 0 To UBound(arrayToParse) - 1

        rs.AddNew
        rs("Colors").Value = arrayToParse(i)
        rs.Update
        arrayMsg = arrayMsg & arrayToParse(i) & vbCrLf

    Next i

    Debug.Print "The array has parsed the following to the Colors table: " & vbCrLf & arrayMsg

    rs.Close
    Set rs = Nothing
    Set db = Nothing

End Sub

您可能还想将 myDelimStr 设置为 myDelimStr = getFileList("\wwdata\dev\_commons\color","*.jpg")