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