2017-01-19 50 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

相關問題