使用字符串函数,可以在 Access 中创建以多种方式作文本的表达式。 例如,您可能希望在窗体上仅显示部分序列号。 或者,您可能需要将几个字符串联接(连接)在一起,如姓氏和名字。 如果还不精通表达式,请参阅 生成表达式。
下面是 Access 中一些更常见的字符串作的列表,以及用于执行这些作的函数:
| 若要... | 使用... | 例如... | 结果 | 
|---|---|---|---|
| 从字符串的开头返回字符 | =Left([SerialNumber],2) | 如果 [SerialNumber] 为“CD234”,则结果为“CD”。 | |
| 从字符串的结尾返回字符 | =Right([SerialNumber],3) | 如果 [SerialNumber] 为“CD234”,则结果为“234”。 | |
| 查找字符串中某个字符的位置 | =InStr(1,[FirstName],"i") | 如果 [FirstName] 为“Colin”,则结果为 4。 | |
| 从字符串的中间返回字符 | =Mid([SerialNumber],2,2) | 如果 [SerialNumber] 为“CD234”,则结果为“D2”。 | |
| 字符串中的 Trim 前导或尾随空格 | =Trim([FirstName]) | 如果 [FirstName] 为“Colin”,则结果为“Colin”。 | |
| 将两个字符串联接在一起 | 加号 (+) 运算符* | =[FirstName] + [LastName] | 如果 [FirstName] 为“Colin”,[LastName] 为 Wilcox,则结果为“ColinWilcox” | 
| 将两个字符串联接在一起,中间加一个空格 | 加号 (+) 运算符* | =[FirstName] + “ ” + [LastName] | 如果 [FirstName] 为“Colin”,[LastName] 为 Wilcox,则结果为“Colin Wilcox” | 
| 将字符串的大小写更改为大写或小写 | =UCase([FirstName]) | 如果 [FirstName] 为“Colin”,则结果为“COLIN”。 | |
| 确定一个字符串的长度 | =Len([FirstName]) | 如果 [FirstName] 为“Colin”,则结果为 5。 | 
* 好吧,所以它不是函数,它是一个运算符。 但是,这是将字符串联接在一起的最快方法。 在桌面数据库中,也可以使用与运算符 (&) 进行连接。
在 Access 中有更多与文本相关的函数。 详细了解这些函数的一种好方法是打开表达式生成器并浏览函数列表。 表达式生成器几乎可在要生成表达式的任何位置使用 -- 通常有一个小的“ 生成 ”按钮,如下所示:  
为了演示表达式生成器,让我们从窗体或视图上的 “控件源” 属性打开它。 根据使用的是桌面数据库还是 Access Web 应用,使用以下过程之一。
在桌面数据库中显示表达式生成器
- 
              打开桌面数据库 (.accdb)。 
- 
              按 F11 打开导航窗格(如果尚未打开)。 
- 
              如果您已有可用的窗体,请在导航窗格中右键单击,然后单击“布局视图”。 如果没有要使用的窗体,请单击“ 创建 > 窗体”。 
- 
              右键单击窗体上的文本框,然后单击“属性”。 
- 
              在“属性表”中,单击“所有 > 控件源”,然后单击“控件源”属性框右侧的“生成”按钮 - 
              在“表达式元素”下,展开“函数”节点并单击“内置函数”。 
- 
              在“表达式类别”下,单击“文本”。 
- 
              在“表达式值”下,单击各种函数并阅读表达式生成器底部的简短说明。 注意: 并非所有这些函数均适用于所有上下文;Access 会自动根据适用于各种上下文的函数自动筛选列表。 
合并文本函数以获得更大的灵活性
某些字符串函数具有数字参数,在某些情况下,每次调用函数时都需要计算。 例如,Left 函数具有一个字符串和一个数字,如 =Left(SerialNumber, 2) 中所示。 如果您知道您总是需要左侧的两个字符,则没有问题,但如果您所需的字符数因数据项而异,该怎么办? 可以输入另一个计算字符数的函数,而不是只对字符数进行“硬编码”。
下面是序列号的示例,每个序列号在字符串的某个位置都有一个连字符。 但是,连字符的位置有所不同:
| SerialNumber | 
|---|
| 3928-29993 | 
| 23-9923 | 
| 333-53234 | 
| 3399940-444 | 
如果您只想显示连字符左侧的数字,则每次都需要进行计算以找出连字符的位置。 可选择如下执行操作:
=Left([SerialNumber],InStr(1,[SerialNumber],"-")-1)
我们没有输入数字作为 Left 函数的第二个参数,而是插入 InStr 函数,该函数返回连字符在序列号中的位置。 该值减去 1,即得到 Left 函数要返回的正确字符数。 起初似乎有些复杂,但有了一些经验后,您可以合并两个或更多个表达式来获得所需结果。
