如何在 MS Access 中交换名字和姓氏

如何在 MS Access 中交换名字和姓氏

我有一个 Access 数据库,其中有一列字段包含姓名,其中名字是第一个,姓氏是最后一个。我希望能够将它们互换,以便姓氏在前,名字在后。例如,我希望

鲍勃·史密斯

成为

史密斯,鲍勃

有人知道这是否可以在 Access 中完成吗?

谢谢

答案1

取决于你想怎么做。我会使用函数,而不是编写复杂的 SQL。下面是一个可以做到这一点的函数:

  Public Function SwapNames(ByVal varOriginalName As Variant) As Variant
    Dim strOriginalName As String
    Dim lngLastNameStart As Long
    Dim strLastName As String
    Dim strFirstName As String

    If IsNull(varOriginalName) Or InStr(varOriginalName, " ") = 0 Then
       SwapNames = varOriginalName
    Else
       strOriginalName = varOriginalName
       lngLastNameStart = InStrRev(strOriginalName, " ") + 1
       strLastName = Mid(strOriginalName, lngLastNameStart)
       strFirstName = Left(strOriginalName, lngLastNameStart - 2)
       SwapNames = strLastName & ", " & strFirstName
    End If
  End Function

这将返回以下值:

  ?SwapNames(Null)
  Null
  ?SwapNames("Fenton")
  Fenton
  ?SwapNames("David Fenton")
  Fenton, David
  ?SwapNames("David W. Fenton")
  Fenton, David W.

...您只需要在 SQL 中使用它即可:

  UPDATE tblPerson
  SET tblPerson.FullName = SwapNames(tblPerson.FullName)

现在,如果您只想使用 SQL 进行操作,那就更复杂、更麻烦了。如果您想要这样做,只需提出要求,我就会试一试。

答案2

您能否创建另一个在 Access 上运行查询并编辑字符串的字段?我对 Access 不太熟悉。我知道您可以在 Excel 中执行此操作。也许这是一个选择。将数据导出到 Excel,使用公式编辑字符串,然后更新 Access 表以包含名字和姓氏的字段。

相关内容