字符串函数以及如何使用它们
Applies ToMicrosoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

使用字符串函数,可以在 Access 中创建以多种方式操作文本的表达式。 例如,您可能希望在窗体上仅显示部分序列号。 或者,您可能需要将几个字符串联接(连接)在一起,如姓氏和名字。 如果您尚未了解表达式,请参阅构建表达式

下面是 Access 中一些更常见的字符串操作的列表,以及用于执行这些操作的函数:

若要...

使用...

例如...

结果

从字符串的开头返回字符

左函数

=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”。

字符串中的 Trim 前导或尾随空格

LTrim、RTrim 和 Trim 函数

=Trim([FirstName])

如果 [FirstName] 为“ Colin ”,则结果为“Colin”。

将两个字符串联接在一起

加号 (+) 运算符*

=[FirstName] + [LastName]

如果 [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 应用,使用以下过程之一。

在桌面数据库中显示表达式生成器

  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)

我们没有输入数字作为 Left 函数的第二个参数,而是插入 InStr 函数,该函数返回连字符在序列号中的位置。 该值减去 1,即得到 Left 函数要返回的正确字符数。 起初似乎有些复杂,但有了一些经验后,您可以合并两个或更多个表达式来获得所需结果。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。