考虑您是否可以根据自己的意愿弯曲Split Function。
这是一个即时窗口会话示例。
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 中还是丢弃?