Как поменять местами имена и фамилии в MS Access

2036
JimDel

У меня есть база данных Access, где столбец полей содержит имена, где имя является первым, а фамилия является последней. Я хотел бы иметь возможность поменять местами, чтобы они были Фамилия имя, имя, фамилия. Например, я хотел бы

Боб Смит

становиться

Смит, Боб

Кто-нибудь знает, можно ли это сделать в Access?

Спасибо

1
Пусть это будет уроком для разделения имен на отдельные поля имени и фамилии. ceejayoz 14 лет назад 2
Расскажи мне об этом :( JimDel 14 лет назад 0
Я уверен, что есть некоторая причудливая возможность sql, vb-script сделать это изнутри доступа. Но рассматривали ли вы просто экспорт данных и выполнение манипуляций на выбранном вами языке сценария? Затем просто вставьте / обновите данные снова. Nifle 14 лет назад 0

2 ответа на вопрос

3
David W. Fenton

Зависит от того, как вы хотите это сделать. Я бы использовал функцию, а не писал сложный 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, это более сложно и действительно грязно. Если ты этого хочешь, просто спроси, и я попробую.

0
guitarthrower

Можете ли вы создать другое поле, которое выполняет запрос на доступ и редактирует строку? Я не очень знаком с Access. Я знаю, что вы можете сделать это в Excel. И, возможно, это вариант. Экспортируйте данные в Excel, отредактируйте строку с формулами, а затем обновите таблицу Access, чтобы иметь поле для имени и фамилии.