2017-01-19 49 views
0

我在我的访问数据库表中有一列,我运行了一个查询以使其正确使用StrConv([MyColumn],3),但后两个字母是州名,并且此查询使SOmeThing, soMethINg, NYSomething, Something, Ny, 我想要结果为Something, Something, NY 是否有另一个查询我可以运行后大写最后一个字母?大写只是字符串中的最后一个字母-MS Access

回答

2

您可以使用:

UcaseLast: Left([YourColumn], Len([YourColumn]) - 1) & UCase(Right([YourColumn], 1)) 
+0

它给我错误,MS Access无法更新由于类型转换失败而导致的更新查询中的所有记录 –

+0

这可能是由于具有_Null_值的记录。过滤掉。 – Gustav

+0

你是对的,除了它的作品!谢谢 –

1

那么,大多数人会告诉你,存储您的“地址”,“城市”和“国家”作为单独的领域。然后你分别将它们分开并连接在一起。如果你能做到这一点......那是你最好的方法。

如果这是一个数据库或文件已被扔在你身上,你不能使字段/表更改...它仍然可能得到你想要的结果。但是,最好确保所有字符串都以您的状态代码结束。另外请确保你没有外国地址,因为加拿大(和其他国家)最后在省代码中使用了两个以上的字母。

但如果你是确保所有记录都包含两个字母的状态缩写,可以继续以下:

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

这需要你[MyColumn]第1位至您的[MyColumn的长度midstring ]减去2(离开州代码),它适当的案件的一切。

然后它连接(使用加号)到[MyColumn]的权限字符串长度为2和大写字母的它。

再一次,如果字段在字符串的末尾没有一致的状态代码,那么这很危险。

祝你好运。希望这可以帮助。 :)

+0

它不是一个地址字段,它可能是商店名称,一些其他文本和最终状态, –

+0

GIGO是GIGO,作为开发者,我们有时无法避免它。我很高兴看到你在古斯塔夫找到你的答案。请记住,他的答案不适用于字符串的第一部分。但我认为你已经看到了这一点,并对你的满意度进行了修改。最好的祝愿 :) – abraxascarab

相关问题