字串函數及其使用方法

Applies To
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

您可以使用字串函數在 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,使用下列其中一個程序。

在桌面資料庫中顯示運算式產生器

  1. 開啟桌面資料庫 (.accdb) 。

  2. 如果 [瀏覽窗格] 尚未開啟,請按 F11 以開啟。

  3. 如果您已有可用的表單,請在 [瀏覽窗格] 中以滑鼠右鍵按一下該表單,然後按一下 [版面配置檢視]。 如果您沒有可使用的表單,請按一下 [建立>表單]。

  4. 以滑鼠右鍵按一下表單上的文字方塊,然後按一下 [內容]。

  5. 在屬性工作表中,按一下 [所有>控制項來源],然後按一下 [控制項來源] 屬性方塊右側的 [建置] 按鈕影像

    屬性工作表中的 [建立] 按鈕。

  6. [運算式元素] 底下,展開 [函數 ] 節點,然後按一下 [ 內建函數]。

  7. [運算式類別] 底下,按一下 [文字]。

  8. [運算式值] 底下,按一下各種函數,並閱讀 [運算式產生器] 底部的簡短描述。

    注意

    並非所有這些功能都適用於所有內容;Access 會根據哪些項目在每個內容中運作,自動篩選清單。

結合文字函數以獲得更多彈性

某些字串函數具有數值引數,在某些情況下,您需要在每次呼叫函數時進行計算。 例如,Left 函數會採用字串和數字,如 =Left (SerialNumber, 2) 。 如果您知道始終需要左邊的兩個字符,這就太好了,但是如果您需要的字符數因項目而異怎麼辦? 您可以輸入另一個函數來計算字元數,而不只是對字元數進行「硬編碼」。

以下是序號的範例,其中每個序號在字串中的某個位置都有連字號。 不過,連字號的位置會有所不同:

SerialNumber
3928-29993
23-9923
333-53234
3399940-444

如果您只想顯示連字號左側的數字,則每次都需要進行計算以找出連字號的位置。 其中一個選項是執行如下操作:

=Left ([SerialNumber],InStr (1,[SerialNumber],“-”) -1)

我們插入了 InStr 函數,以傳回連字號在序號中的位置,而不是輸入數字做為 Left 函數的第二個引數。 從該值中減去 1,您就會得到 Left 函數要傳回的正確字元數。 一開始看起來有點複雜,但通過一些實驗,您可以組合兩個或多個表達式以獲得您想要的結果。