#ms-access
Вопрос:
Как я мог бы получить текст в строке перед пробелом — и избежать ошибки, если в строке нет пробела?
Например, если у меня есть поле имени с именами, которое выглядит следующим образом:
- Джон С
- Салли Кью
- Томас Р.
- Роберт
- Мэри Джей
Я хочу, чтобы поле в запросе возвращалось:
- Джон
- Салли
- Томас
- Роберт
- Мэри
Я попробовал использовать следующее поле в своем запросе, но оно по-прежнему возвращает пробел и символ после пробела:
FName: Left([FirstName],IIf(Len(InStr([FirstName]," ")=0),Len([FirstName]),InStr([FirstName]," ")-1))
Спасибо!
Ответ №1:
Считать:
Left(FirstName, IIf(InStr(FirstName, " ")=0, Len(FirstName), InStr(FirstName," ")-1))
Или
IIf(InStr(FirstName, " "), Left(FirstName, InStr(FirstName, " ")-1), FirstName)
Это предполагает, что все записи следуют приведенным образцам примеров, а не чему-то вроде: Мэри Джо Р. Усложняется, если вы хотите Мэри Джо.
Комментарии:
1. Спасибо тебе @June7! И то, и другое сработало идеально.
Ответ №2:
Это сработает:
Left([First Name], IIf((InStrRev([First Name], " ", -1)-1)<= 0, Len([First Name]), InStrRev([First Name], " ", -1)-1))
Комментарии:
1. Спасибо, @Pflipper, ваше решение тоже сработало. Еще раз спасибо!