字串函數及其使用方法
套用到
透過字串函式,你可以在 Access 中建立表達式,以多種方式處理文字。 例如,你可能想在表單上只顯示部分序號。 或者,你可能需要將 () 多個字串串接在一起,例如姓氏和名字。 如果你還不熟悉表達式,請參考 「建構表達式」。
以下是 Access 中一些較常見的字串操作,以及你會用來執行它們的函式列表:
| 若要… | 用...... | 舉例來說...... | 結果 |
|---|---|---|---|
| 字串開頭的字元回傳 | 左函數 | =左 ([序號],2) | 若序號為「CD234」,則結果為「CD」。 |
| 從字串末尾回傳字元 | 右函數 | =右 ([序號],3) | 若序號為「CD234」,則結果為「234」。 |
| 找出字串中字元的位置 | InStr 函數 | =InStr (1,[名字],“i”) | 如果 [FirstName] 是「Colin」,結果是 4。 |
| 從字串中間回傳字元 | 中段功能 | =中 ([序號],2,2) | 若序號為「CD234」,則結果為「D2」。 |
| 弦的前導或後方修飾空格 | LTrim、RTrim 與 Trim 功能 | =修剪 ([名字]) | 如果 [FirstName] 是「Colin」,則結果是「Colin」。 |
| 把兩根弦連接起來 | 加號 (+) 運算子* | =[名字] + [姓氏] | 若 [FirstName] 是「Colin」,[姓氏]是 Wilcox,則結果為「ColinWilcox」 |
| 將兩根弦連接起來,中間留有空隙 | 加號 (+) 運算子* | =[名字] + “ ” + [姓氏] | 若 [FirstName] 是「Colin」,[姓氏]是 Wilcox,則結果為「Colin Wilcox」。 |
| 將字串的大小寫改為大寫或小寫 | UCase功能 或 LCase功能 | =UCase ([名字]) | 若 [FirstName] 是「Colin」,則結果為「COLIN」。 |
| 確定一條字串的長度 | Len 函數 | =倫 ([名字]) | 如果 [FirstName] 是「Colin」,結果是 5。 |
* 好,所以這不是函數,是運算子。 不過,這是最快連接線的方式。 在桌面資料庫中,你也可以使用&符號運算子 (&) 來串接。
Access 中還有更多與文字相關的功能。 一個更好的方法是打開表達式建構器,瀏覽函式清單。 表達式建構器幾乎在你想建立表達式的地方都能使用——通常會有個小小的 建構 按鈕,長得像這樣:
為了示範表達式建構器,讓我們從表單或視圖上的 控制來源 屬性開啟它。 根據你使用的桌面資料庫或 Access 網頁應用程式,請使用以下其中一個程序。
在桌面資料庫中顯示表達式建構器
開啟桌面資料庫 (.accdb) 。
如果導航窗格還沒開啟,請按 F11 開啟。
如果你已經有表單,請在導航窗格中右鍵點擊,然後點擊 版面檢視。 如果你沒有表單可用,請點擊 建立>表單。
在表單上右鍵點擊文字框,然後點 選屬性。
在屬性表中,點選「所有>控制來源」,並點選控制來源屬性框右側的建置
。
在 表達式元素中,展開 功能 節點並點選內建 函式。
在 表達類別中,點選 文字。
在 表達式值中,點擊各種函式,閱讀表達式建構器底部的簡短說明。
注意
並非所有這些功能在所有情境下都能使用;Access 會根據在不同情境中有效的方法自動篩選清單。
結合文字函式以增加彈性
有些字串函數有數值參數,有時每次呼叫時都得計算。 例如,Left 函數會取一個字串和一個數字,例如 =Left (SerialNumber, 2) 。 如果你知道自己總是需要剩下的兩個角色,這點很棒,但如果不同物品需要的角色數量會不一樣呢? 你不只是「硬編碼」字元數,而是輸入另一個函式來計算。
這裡有一個序號的例子,每個序號的字串中都有連字號。 然而,連字號的位置會有所不同:
| 序號 |
|---|
| 3928-29993 |
| 23-9923 |
| 333-53234 |
| 3399940-444 |
如果你只想顯示連字號左邊的數字,每次都需要計算來找出連字號的位置。 一個選項是這樣做:
=左 ([序號],InStr (1,[序號],“-”) -1)
我們不是把數字當作 Left 函數的第二個參數,而是代入 InStr 函數,它會回傳序號中連字號的位置。 從該值減去 1,就能得到 Left 函數回傳的正確字元數。 一開始看起來有點複雜,但只要稍微嘗試,你可以結合兩個或更多表達式,得到你想要的效果。