在访问中分解分隔的字段

时间:2016-01-31 03:09:29

标签: ms-access

我在访问表字段中有此记录

93; 25; 114; 734; 4019

我需要将其分为5列

我用它来检索第一部分:Stars1:Left([Stars],InStr([Stars],“;”) - 1)

请帮忙。

由于

3 个答案:

答案 0 :(得分:1)

在查询中使用Split()可以轻松处理表格字段" Stars"你可以创建一个新函数,它接受一个额外的索引参数并返回一个字符串而不是一个Array():

Public Function SplitForQuery(s, Delimiter As String, i As Integer)
    Dim x() As String
    If Not IsNull(s) Then
        x = Split(s, Delimiter)
        SplitForQuery = x(i)
    End If
End Function

要在查询中使用它,您需要执行以下操作:

SELECT SplitForQuery([Stars],";",0) AS Value1,
    SplitForQuery([Stars],";",1) AS Value2, 
    SplitForQuery([Stars],";",2) AS Value3
FROM Table1;

当然,您可以根据需要添加任意数量的值,如果需要在另一个表中插入值,则可以轻松地将此查询转换为INSERT语句。

答案 1 :(得分:0)

使用分割功能。

Dim rst As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT Stars FROM your_table where ..." ' your where clause
Set rst = CurrentDb.OpenRecordset(strSQL)
Dim TestArray() As String = Split(rst!Stars,";") 
'TestArray holds {"93","25","114","734","4019"}
'TestArray(0) holds "93"

答案 2 :(得分:0)

公共函数GetFullTextItem(_   ByVal strFullText As String,_   ByVal intItem As Integer)As String

On Error Resume Next   GetFullTextItem = Split(strFullText,&#34 ;;")(intItem)

结束功能

- Star1:GetFullTextItem([Stars],0)等