两个字符之间的字符串提取

String Extraction between two characters

我在 Microsoft Access 2010 中工作,我有一个 table 和列 [tblData]![Associate Name],其数据格式类似于 Smith, John (123456)。显然,这会显示姓氏、名字和员工 ID 号(可以在 5 到 6 位数字之间变化)。我的问题是我需要从此字符串中提取员工 ID 号,并且我正在努力使用 LeftRightMidInStr 的正确组合功能。

使用InStr()查找(字符的位置。

接下来使用Mid()提取(

后一个字符开始的子串

然后Val()会从剩下的数字中给你一个数字;它忽略最后一位数字后的任何内容。

如果您希望结果为字符串而不是数字,可以使用CStr()进行转换。

这是即时 window 中的示例:

Associate_Name = "Smith, John (123456)"
? InStr(1, Associate_Name, "(")
 13 
? Mid(Associate_Name, InStr(1, Associate_Name, "("))
(123456)
? Mid(Associate_Name, InStr(1, Associate_Name, "(") + 1)
123456)
? Val(Mid(Associate_Name, InStr(1, Associate_Name, "(") + 1))
 123456 
? CStr(Val(Mid(Associate_Name, InStr(1, Associate_Name, "(") + 1)))
123456