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

时间:2016-08-01 18:52:19

标签: sql ms-access ms-access-2010

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

1 个答案:

答案 0 :(得分:4)

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

接下来使用Mid()提取从(

之后的一个字符开始的子字符串

然后Val()将从剩余的数字中给出一个数字;它忽略了最后一位数后的任何内容。

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

以下是立即窗口中的示例:

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