Сделать заглавной только последнюю букву в строке - MS Access

У меня есть столбец в моей таблице базы данных доступа, я выполнил запрос, чтобы сделать его правильным, используя StrConv([MyColumn],3), но последние две буквы являются именами состояний, и этот запрос преобразует SOmeThing, soMethINg, NY в Something, Something, Ny, я хочу получить результат как Something, Something, NY Есть ли другой запрос, который я могу бежать за заглавной последней буквой?


person Umm E Habiba Siddiqui    schedule 19.01.2017    source источник


Ответы (2)


Вы можете использовать:

UcaseLast: Left([YourColumn], Len([YourColumn]) - 1) & UCase(Right([YourColumn], 1)) 
person Gustav    schedule 19.01.2017
comment
это дает мне ошибку, что MS Access не может обновить все записи в запросе на обновление из-за сбоя преобразования типа - person Umm E Habiba Siddiqui; 19.01.2017
comment
Вероятно, это связано с записями со значениями Null. Отфильтруйте их. - person Gustav; 19.01.2017

Что ж, большинство людей посоветовали бы вам хранить «адрес», «город» и «штат» как отдельные поля. Затем вы подбираете каждый случай по отдельности и объединяете их вместе. Если вы можете это сделать... это ваш лучший подход.

Если это база данных или файл, который был брошен вам, и вы не можете внести изменения в поле/таблицу... все еще возможно получить желаемые результаты. Однако вам лучше убедиться, что все строки заканчиваются вашим кодом состояния. Также убедитесь, что у вас нет иностранных адресов, поскольку в Канаде (и других странах) в конце кода провинции используется более двух букв.

Но если вы уверены, что все записи содержат двухбуквенные сокращения состояний, вы можете продолжить со следующего:

MyColumnAdj: StrConv(Mid([MyColumn],1,len([MyColumn])-2),3) + StrConv(right([MyColumn],2),1)

Это переводит среднюю строку вашего [MyColumn] из позиции 1 в длину вашего [MyColumn] минус 2 (без кода состояния), и это все правильно.

Затем он объединяется (используя знак «плюс») с правой строкой [MyColumn] длиной 2 и в верхнем регистре.

Опять же, это опасно, если поле не имеет кода состояния в конце строки.

Удачи. Надеюсь это поможет. :)

person abraxascarab    schedule 19.01.2017
comment
это не адресное поле, это может быть название магазина, какой-то другой текст и конечное состояние, - person Umm E Habiba Siddiqui; 19.01.2017
comment
GIGO есть GIGO, мы как разработчики иногда не можем этого избежать. Я рад видеть, что вы нашли свой ответ с Густавом. Просто имейте в виду, что его ответ не является первой частью строки в правильном регистре. Но я предполагаю, что вы уже видели это и внесли необходимые изменения. С наилучшими пожеланиями :) - person abraxascarab; 19.01.2017