您可以使用字串函數在 Access 中建立運算式,以各種方式處理文字。 例如,您可能只想要在表單上顯示部分序號。 或者,您可能需要聯結 (串連數個字串) 例如姓氏和名字。 如果您還不熟悉運算式,請參閱 建立運算式。
以下列出 Access 中一些較常見的字串運算,以及用來執行這些運算的函數:
| 若要… | 使用... | 例如... | 結果 |
|---|---|---|---|
| 從字串開頭傳回字元 | Left 函數 | =Left ([SerialNumber],2) | 如果 [SerialNumber] 是 “CD234”,則結果為 “CD”。 |
| 從字串結尾傳回字元 | Right 函數 | =Right ([SerialNumber],3) | 如果 [SerialNumber] 是 “CD234”,則結果為 “234”。 |
| 尋找字串中字元的位置 | InStr 函數 | =InStr (1,[FirstName],“i”) | 如果 [FirstName] 是 “Colin”,則結果為 4。 |
| 從字串中間傳回字元 | Mid 函數 | =Mid ([SerialNumber],2,2) | 如果 [SerialNumber] 是 “CD234”,結果為 “D2”。 |
| 修剪字串中的前置或後置空格 | LTrim、RTrim 與 Trim 函數 | =Trim ([FirstName]) | 如果 [FirstName] 是 “ Colin ”,則結果為 “Colin”。 |
| 將兩個字串連接在一起 | 加號 (+) 運算子* | =[名字] + [姓氏] | 如果 [FirstName] 是 “Colin”,而 [LastName] 是 Wilcox,則結果為 “ColinWilcox” |
| 將兩個字串連接在一起,並在字串之間留出空格 | 加號 (+) 運算子* | =[FirstName] + “ ” + [LastName] | 如果 [FirstName] 為 “Colin”,而 [LastName] 為 Wilcox,則結果為 “Colin Wilcox” |
| 將字串大小寫變更為大寫或小寫 | UCase 函數 或 LCase 函數 | =UCase ([FirstName]) | 如果 [FirstName] 是 “Colin”,則結果為 “COLIN”。 |
| 判斷字串的長度 | Len 函數 | =Len ([FirstName]) | 如果 [FirstName] 是 “Colin”,則結果為 5。 |
* 好的,所以它不是一個函數,它是一個運算子。 不過,這是將字串連接在一起的最快速方法。 在桌面資料庫中,您也可以使用符號運算子 (&) 進行串連。
Access 中還有更多與文字相關的函數。 深入了解這些策略的一個好方法是開啟 [運算式產生器] 並瀏覽函數清單。 運算式產生器幾乎可以在任何您想要建立運算式的位置使用,通常有一個小的 [建置 ] 按鈕看起來像這樣:
為了示範運算式產生器,讓我們從表單或檢視上的 [控制項來源 ] 屬性開啟運算式產生器。 根據您使用的是桌面資料庫或 Access Web App,使用下列其中一個程序。
在桌面資料庫中顯示運算式產生器
開啟桌面資料庫 (.accdb) 。
如果 [瀏覽窗格] 尚未開啟,請按 F11 以開啟。
如果您已有可用的表單,請在 [瀏覽窗格] 中以滑鼠右鍵按一下該表單,然後按一下 [版面配置檢視]。 如果您沒有可使用的表單,請按一下 [建立>表單]。
以滑鼠右鍵按一下表單上的文字方塊,然後按一下 [內容]。
在屬性工作表中,按一下 [所有>控制項來源],然後按一下 [控制項來源] 屬性方塊右側的 [建置] 按鈕
。
在 [運算式元素] 底下,展開 [函數 ] 節點,然後按一下 [ 內建函數]。
在 [運算式類別] 底下,按一下 [文字]。
在 [運算式值] 底下,按一下各種函數,並閱讀 [運算式產生器] 底部的簡短描述。
注意
並非所有這些功能都適用於所有內容;Access 會根據哪些項目在每個內容中運作,自動篩選清單。
結合文字函數以獲得更多彈性
某些字串函數具有數值引數,在某些情況下,您需要在每次呼叫函數時進行計算。 例如,Left 函數會採用字串和數字,如 =Left (SerialNumber, 2) 。 如果您知道始終需要左邊的兩個字符,這就太好了,但是如果您需要的字符數因項目而異怎麼辦? 您可以輸入另一個函數來計算字元數,而不只是對字元數進行「硬編碼」。
以下是序號的範例,其中每個序號在字串中的某個位置都有連字號。 不過,連字號的位置會有所不同:
| SerialNumber |
|---|
| 3928-29993 |
| 23-9923 |
| 333-53234 |
| 3399940-444 |
如果您只想顯示連字號左側的數字,則每次都需要進行計算以找出連字號的位置。 其中一個選項是執行如下操作:
=Left ([SerialNumber],InStr (1,[SerialNumber],“-”) -1)
我們插入了 InStr 函數,以傳回連字號在序號中的位置,而不是輸入數字做為 Left 函數的第二個引數。 從該值中減去 1,您就會得到 Left 函數要傳回的正確字元數。 一開始看起來有點複雜,但通過一些實驗,您可以組合兩個或多個表達式以獲得您想要的結果。