解析字符串的前两部分

时间:2014-04-09 17:18:47

标签: ms-access ms-access-2007 access-vba

我有一个名为'Specimen'的字段,其条目格式为'CM-Z-01','TOR-XY-03'等。我想在同一个表中填充另外两个字段,称为'TestType'和'Axis',分别是'Specimen'条目的前两部分。所以'TestType'会有'CM'和'TOR';轴将具有'Z'和'XY'

我可以用

做第一个就好了
UPDATE MechanicalData
    SET MechanicalData.TestType = Left(Specimen,InStr(Specimen,"-")-1);

有没有一种简单的方法来抓住中间部分?

1 个答案:

答案 0 :(得分:2)

您可以使用Split函数返回一个包含字符串部分的数组:

firstPart = Split("TOR-XY-03", "-")(0)
secondPart = Split("TOR-XY-03", "-")(1)

根据此功能创建一个可以在查询中调用的函数。您不能直接使用Split,因为SQL不支持。

Public Function SpecimenPart(ByVal s As Variant, ByVal partNo As Long) As Variant
    If Nz(s) <> "" Then
        Dim parts As Variant
        parts = Split(s, "-")
        If partNo - 1 <= UBound(parts) Then
            SpecimenPart = parts(partNo - 1)
        End If
    End If
End Function

参数partNo是从一开始的(第一部分为1)。

UPDATE MechanicalData SET
    TestType = SpecimenPart(Specimen, 1),
    Axis =  SpecimenPart(Specimen, 2);