考虑是否可以根据自己的意愿弯曲拆分功能。
这是一个立即窗口会话示例。
PATRN_NAME = "Smith, James M"
? PATRN_NAME
Smith, James M
? Split(PATRN_NAME, ",")(0)
Smith
? Trim(Split(PATRN_NAME, ",")(1))
James M
? Split(Trim(Split(PATRN_NAME, ",")(1)), " ")(0)
James
? Split(Trim(Split(PATRN_NAME, ",")(1)), " ")(1)
M
您不能Split()
直接在查询中使用。但是,您可以构建一个或多个用户定义的函数并从查询中调用 UDF。
这种方法可以比需要组合其他函数的查询更简单:InStr()
、Mid()
、Right()
等。但是,UDF 意味着查询只能在 Access 应用程序会话中工作。如果您需要从外部 Access(.Net、VBScript、PHP 等)运行的查询,则 UDF 将不可用。
我建议您澄清您的意图是在每次查询数据时提取FIRST_NAME
、LAST_NAME
和,还是在提取一次后将这些值单独存储在表中。MI
这应该会影响您选择的方法。如果您将它们拆分一次并存储,您可以使用 VBA 过程而不是查询。
还要决定中间首字母“Jones, Chris J”之后的可选点应该发生什么。. 保留MI
还是丢弃?