访问:查询每个记录集的拆分文本

时间:2018-11-08 10:56:55

标签: sql ms-access access-vba

我在访问中有一个名为“ RZ6”的表,其中有一个名为[GRID REF]的字段。 [GRID REF]的值如下所示: “ 575583/151011”

现在,我想使用“ /”作为分隔符,并将“ 575583”和“ 151011”分成单独的字段,理想情况下分别称为“ X”和“ Y”。

我有168条上述记录,需要分开。全部在同一个[GRID REF]字段中。可以自动完成吗?

2 个答案:

答案 0 :(得分:2)

这有点麻烦,但是您可以添加一个VBA函数,然后从查询中调用它。

Public Function Splitter(strFieldValue As String, intElement As Integer) As Variant
    Dim varTmp  As Variant

    varTmp = Split(Replace(strFieldValue, " ", ""), "/")
    If UBound(varTmp) = 0 Then
        ReDim Preserve varTmp(UBound(varTmp) + 1)
    End If

    Splitter = varTmp(intElement)
End Function

因此,请删除前面的所有空格,然后尝试以正斜杠分隔。我为返回的两个元素添加了基本检查,但是您可以继续进行此检查以强化逻辑。

在查询中,您将进行两次调用以获取文本的第一部分和第二部分:

SELECT [GRID REF]
    , Splitter([GRID REF], 0) AS Easting
    , Splitter([GRID REF], 1) AS Northing
FROM RZ6;

答案 1 :(得分:0)

我已经按照Vincent G的注释在sql中进行了解决。

SELECT [GRID REF], trim(left([GRID REF],(instr([GRID REF],"/")-1))) as Easting , 
trim(Right(Trim([GRID REF]),(len([GRID REF]) - instr([GRID REF],"/")))) as Northing 
from RZ6 ;

如果有人有另一种方法,请告诉我。