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

时间:2015-04-23 21:41:52

标签: sql ms-access ms-access-2013

我有一个模块子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....

可以使用哪个函数/命令将其作为一个列表,并将每个分隔项目作为记录。

期望的输出。

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

以下假设已经有一个名为" tblColors"的空表。该表中的一个短文本字段叫做" Colors",它将成为解析每个&#34 ;;"的目标。将字符串中的分隔项放入该表中的自己的记录中:

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")