Access表达式

Access表达式
Access表达式

什么是表达式?

Access 中的表达式相当于Excel 中的公式。一个表达式由多个单独使用或组合使用以生成某个结果的可能元素组成。元素可能包括标识符(字段名称、控件名称或属性名称)、运算符(如加号(+) 或减号(-))、函数、常量和值。您可以使用表达式执行计算、检索控件值、提供查询条件、定义规则、创建计算控件和计算字段,以及定义报表的分组级别。

以下是一些表达式示例。

表达式用途

=[订购日期]-[发货日期] 计算报表上两个文本框控件中的值之差

Date() 将表中字段的默认值设置为当前日期

创建查询中的计算字段

总价: CCur([订单明细].单价*[数量]*(1-[折

扣])/100)*100

Between #1/1/2005# And #12/31/2005# 用于输入查询中―日期/时间‖字段的条件

=[订单子窗体].Form!订单小计返回―订单‖窗体的―订单‖子窗体上的―订单小

计‖控件的值

> 0 设置表中数值字段的有效性规则

正如以上示例表达式所显示的那样,Access 中的表达式不仅仅是一种计算。表达式可用于多种不同的用途。

您可能还注意到示例表达式在某些方面是互不相同的。例如,某些表达式以= 运算符开头。当计算窗体或报表上某一控件的值时,使用= 运算符作为表达式的开头。而在其他情况下,则不使用= 运算符。例如,当您在查询或者字段或控件的―默认值‖或―有效性规则‖属性中输入表达式时,不使用= 运算符。

标识符

标识符是字段、属性或控件的名称。在表达式中使用标识符可引用与字段、属性或控件关联的值。例如,请看表达式=[订购日期]-[发货日期]。此表达式将―订购日期‖字段或控件的值减去―发货日期‖字段或控件的值。在此表达式中,―订购日期‖和―发货日期‖都是标识符。

运算符

Access 支持多种运算符,其中包括预期的算术运算符,如+、-、*(乘)和/(除),以及用于比较两个值的比较运算符、用于连接文本的文本运算符、用于确定True 或False 值的逻辑运算符,还包括Access 所特有的其他运算符。有关运算符的详细信息,请参见本文的运算符列表一节。

函数

函数是可在表达式中使用的内置程序。可将其用于执行计算、处理文本和日期、汇总数据以及执行多种操作。例如,一个最常用的函数是Date。Date 函数可返回当前日期。您可以在为表中字段设置默认值的表达式中使用此函数。这样,无论何时添加一条新记录,此字段的默认值都为当前日期。

某些函数需要使用参数。参数是一个充当函数输入的值。如果函数需要使用多个参数,则需要使用逗号将参数分隔开。例如,请考虑以下表达式示例中的Format 函数:

=Format(Date(),"mmmm d, yyyy")

在此示例中,我们提供两个参数。第一个参数是Date 函数。通常可以将一个函数返回的值作为参数提供给另一个函数。在本例中,我们提供由Date 函数返回的当前日期。第二个参数(与第一个参数以逗号分隔)是用于告知Format 函数如何设置日期格式的文本字符串。请注意,文本字符串应用引号括起来。一般而言,当您需要提供文本时,请将其放在引号中。

Access 支持多种内置函数。有关可用函数的更多信息,请参见函数(按类别)(英文)和函数(按字母顺序)(英文)帮助主题。

常量

常量是一种在Access 运行时其值保持不变的命名数据项。在表达式中最常用到的常量包括True、False 和Null。您也可以在Visual Basic for Applications (VBA) 中定义自己的常量,以在VBA 程序中使用。VBA 是Access 使用的编程语言。

注释您不能在用于表达式的自定义函数中使用Microsoft Visual Basic 常量。例如,Visual Basic 具有表示一周中各天的常量:vbSunday 代表星期日、vbMonday 代表星期一,依此类推。每个常量都有一个相应的数值:vbSunday 的数值为1、vbMonday 的数值为2,依此类推。您不能在从表达式内部调用的自定义函数中使用这些常量,而必须改用数值。

可以在表达式中使用文字值。数值可以是一组数字,包括一个符号和一个小数点(如果需要)。如果没有符号,Access 则认为是一个正值。要使一个值为负值,请包含减号(-)。也可以使用科学记数法。这时,请添加E 或 e 以及指数符号(如1.0E-6)。

文本字符串值应置于引号中。在某些情况下,Access 将为您提供引号。例如,当您在有效性规则或查询条件的表达式中键入文本时,Access 将自动提供引号。

例如,如果您键入文本上海,Access 将在表达式中显示"上海"。如果您希望表达式生成一个实际用引号括起来的字符串,可以用单(') 引号或三组双(") 引号将嵌套字符串括起来。例如,以下表达式是等效的:

Forms![联系人]![城市].DefaultValue = ' "上海" '

Forms![联系人]![城市].DefaultValue = " " "上海" " "

日期/时间值应以编号符号(#) 括起来。例如,#3-7-05#、#7-Mar-05# 和#Mar-7-2005# 都是有效的日期/时间值。当Access 看到以# 字符括起来的有效日期/时间值时,它会自动将此值视为日期/时间数据类型。

返回页首

为什么要使用表达式?

在Access 中,您经常会用到表达式,并将其用于多种目的。例如,当您要计算窗体上字段的值时,可以使用表达式。假设您要计算发票中某一行数据项的总金额。通常,您并不将该行数据项总计存储在数据库中,而是在需要时根据应存储在数据库中的两个数据项(数量和价格)来计算此值。

=CCur([数量]*[价格])

此表达式将数量与价格相乘,然后使用CCur 函数(转换为货币)将结果转换为―货币‖数据类型。

通常使用文本框控件来存储计算值,但是您也可以使用具有―控件来源‖属性的任何控件。将表达式作为其控件来源的控件称为计算控件。如果控件是一个文本框,则可以直接在该文本框中输入表达式。也可以在属性表的―控件来源‖属性中输入表达式。

除了使用表达式计算数据库中未存储的所需值外,通常还可以使用表达式提供查询信息。例如,假设您要查看在特定时间范围内发货的产品销售情况。您可以输入一个使用Between 运算符的条件表达式来定义日期范围。Access 将仅返回符合该条件且发货日期在指定日期范围内的行:

Between #1/1/2004# And #12/31/2004#

您或许还会发现,在查询中计算行数据项总计也是一个非常好的办法,查询可以为窗体或报表提供数据。此类计算得出的查询中的列称为计算字段。例如,以下查询中的表达式可根据适用的折扣来计算行数据项总计:

总价: CCur([订单明细].[单价]*[数量]*(1-[折扣])/100)*100

此表达式将结果列命名为―总价‖。

表达式的另一个好处是为表中的字段或控件提供默认值。例如,如果您要将一个日期字段的默认值设置为当前日期,则可以在该字段的―默认值‖属性中键入Date()。也可以使用表达式设置有效性规则。例如,您可以使用这样一种有效性规则:要求输入的日期必须大于或等于当前日期。此时,应将―有效性规则‖属性框中的值设置为>= Date()。

返回页首

在什么地方使用表达式,如何使用表达式

您可以在许多地方使用表达式。例如,在表、查询、窗体、报表和宏中都可以使用表达式。此外,在编写事件过程或模块的VBA 代码时,通常要使用与Access 对象(如表或查询)中类似的表达式。

表达式中的字段名称和控件名称必须用括号括起来;例如,[单价]。如果您输入的名称不包含空格或特殊字符,则Access 会自动用括号将该名称括起来。如果名称包含空格或特殊字符,则必须自己键入括号。

通过设置Name 属性,可为计算控件命名。在窗体或报表上的所有控件名称中,该名称必须是唯一的。它还必须不同于在该控件的表达式中使用的任何字段或控件名称,而且应不同于基础表或查询中的任何字段名称。当您要在窗体或报表上的其他表达式中引用该控件的值时,可以使用该名称。

最常使用表达式的地方包括:

在窗体或报表上的文本框控件中

可以在文本框控件中使用表达式来创建计算控件。例如,假定您要创建一个小计,以计算某订单窗体上所有行数据项的总和。该小计如下所示。

要计算小计,需要在窗体上放置一个文本框控件,并将该文本框的―控件来源‖属性设置为以下表达式:

=Sum([总价])

Sum 函数可计算记录源中一组值的总和,在本例中,记录源是名为―总价‖的列。

在文本框控件中输入表达式

在数据库窗口中的―对象‖下,单击―窗体‖。

单击某个窗体,然后单击数据库窗口中的―设计‖。

单击文本框以将其选中。

在―视图‖菜单上,单击―属性‖以显示该文本框的属性表。

Access 将显示该文本框的属性表。

将文本框的―控件来源‖属性更改为= 后面跟着表达式,或单击属性框右侧的―生成器‖按钮

使用表达式生成器创建一个表达式。例如,要计算如上所示的小计,请键入=Sum([总

价])。

属性表看上去与下图相似。

关闭该属性表。

在查询设计网格的条件单元格中

可以使用表达式定义查询条件。Access 会只返回与该条件匹配的那些行。例如,假定您要查看发货日期在2004 年中的所有订单。要输入条件,可在查询中―发货日期‖列的―条件‖单元格中输入下面的表达式:

Between #1/1/2004# And #12/31/2004#

―发货日期‖列看上去与下图相似。

可以使用表达式来确定发货日期是否位于指定的日期范围内。请注意,日期值两侧带有编号

符号(#)。Access 将编号符号内的值视为―日期/时间‖数据类型。

在查询设计网格中输入条件

在数据库窗口中的―对象‖下,单击―查询‖。

单击某个查询,然后单击数据库窗口中的―设计‖。

单击要为其输入匹配条件的列中的条件单元格。

键入条件表达式,或单击工具栏上的―生成器‖按钮使用表达式生成器创建一个表达式。

注释条件表达式的前面不要带= 运算符。

如果希望在较大的区域内输入表达式,请按Shift+F2 以显示―显示比例‖ 框。

在查询设计网格的字段单元格中

可以使用表达式在查询中创建计算字段。例如,假定您要在查询中显示订单发货的年份。要创建计算字段,可在查询中空列的字段单元格中输入以下表达式:

年份: Format([发货日期],"yyyy")

该表达式使用Format 函数从―发货日期‖字段中提取年份并将年份格式设置为四位数字。请注意,通过在表达式前面加上年份:,可将结果列命名为―年份‖。

在查询设计视图中输入计算字段

在数据库窗口中的―对象‖下,单击―查询‖。

单击某个查询,然后单击数据库窗口中的―设计‖。

单击希望在其中创建计算字段的列中的字段单元格。

键入表达式,或单击工具栏上的―生成器‖按钮使用表达式生成器创建一个表达式。表达

式格式应以名称开头,后跟一个冒号。例如,键入总价: 作为一个表达式的开头,该表达式将创建一个名为总价的计算字段。

在表中字段的―有效性规则‖属性中

另一个经常使用表达式的地方是表中字段的―有效性规则‖属性。假定您要实施某一规则,该规则可强迫―库存量‖表中的[单位数量] 字段包含一个大于或等于零的值。也就是说,库存量绝不能为负数。使用下图中所示的表达式可以做到这一点。

在表中输入字段的有效性规则

在数据库窗口中的―对象‖下,单击―表‖。

单击某个表,然后单击数据库窗口中的―设计‖。

单击所需字段的字段名称。

单击―有效性规则‖属性框。

键入表达式,或单击属性框右侧的―生成器‖按钮使用表达式生成器创建一个表达式。

注释创建有效性规则时,不要在表达式前面加= 运算符。

使用有效性规则表达式时要记住的重要一点是:这些表达式必须解析为True 值才能被接受。因此,在本例中,[单位数量] 的值必须>=0。否则,Access 将显示―有效性文本‖属性框中所示的文本。如果您未在―有效性文本‖属性框中输入任何文本,Access 会显示其自身的消息,以表明您输入了字段的有效性规则所禁止的值。

在控件的―有效性规则‖属性中

还可以设置控件的―有效性规则‖属性。例如,假定您要使用窗体输入报表的日期范围,并希望确保起始日期不要早于#1/1/2004#。您可以设置要在其中输入起始日期的文本框的―有效性规则‖和―有效性文本‖属性,如下所示。

属性设置

有效性规则>=#1/1/2004#

有效性文本输入的日期不得早于2004-01-01。

如果您尝试输入一个早于#1/1/2004# 的日期,则会显示一条消息。单击―确定‖后,将返回到文本框。

为控件输入有效性规则

在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。

单击某个窗体或报表,然后单击数据库窗口中的―设计‖。

单击控件以将其选中。

单击工具栏上的―属性‖按钮。

Access 将显示该控件的属性表。

单击―全部‖选项卡,然后单击―有效性规则‖属性框。

键入表达式,或单击属性框右侧的―生成器‖按钮使用表达式生成器创建一个表达式。

注释创建有效性规则时,不要在表达式前面加= 运算符。

还可更改―有效性文本‖属性。

关闭该属性表。

如果输入了有效性规则所禁止的值,则可以在插入点位于控件中时按Esc,以便恢复为初始值或默认值。然后可以输入一个符合有效性规则的值。

如果控件的―控件来源‖属性是表中的一个字段,那么在通常情况下,除了设置该控件的―有效性规则‖属性外,最好也对字段的该属性进行设置。这样,无论使用哪个窗体或查询来更新字段,都始终会实施该规则。

在表中字段的―默认值‖属性中

可以使用表达式将字段的默认值存储在表中。例如,假定您要在添加新记录时将日期和时间自动插入―订购日期‖字段中。可以使用如下表达式。

该表达式使用Now 函数将日期和时间插入―订购日期‖字段中。

在表中输入字段的默认值

在数据库窗口中的―对象‖下,单击―表‖。

单击某个表,然后单击数据库窗口中的―设计‖。

单击所需字段的字段名称。

单击―默认值‖属性框。

键入表达式,或单击属性框右侧的―生成器‖按钮使用表达式生成器创建一个表达式。

如果控件绑定到表中的某个字段,并且该字段具有默认值,则将优先使用该控件的默认值。在控件的―默认值‖属性中

另一个经常使用表达式的地方是控件的―默认值‖属性。在表中,控件的―默认值‖属性的行为类似于字段的―默认值‖属性。例如,如果您要输入当前日期作为―订购日期‖文本框的默认值,可以使用如下表达式。

该表达式使用Date 函数返回当前日期,但不返回时间。如果该文本框控件绑定到表中的某个字段,并且该字段具有默认值,则将优先使用控件的默认值。通常,最好在表中设置字段的―默认值‖属性,因为只要控件不覆盖此默认值,就始终会应用它。

输入控件的默认值

在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。

单击某个窗体或报表,然后单击数据库窗口中的―设计‖。

单击控件以将其选中。

单击工具栏上的―属性‖按钮。

Access 将显示该控件的属性表。

单击―全部‖选项卡,然后单击―默认值‖属性框。

键入表达式,或单击属性框右侧的―生成器‖按钮使用表达式生成器创建一个表达式。

关闭该属性表。

在宏中的―条件‖列中

在某些情况下,您可能希望仅在满足特定条件时在宏中执行一个操作或一系列操作。例如,假定您希望仅在―计数器‖文本框的值为10 时才执行操作。可以使用表达式在宏的―条件‖列中定义条件。

输入执行宏操作的条件

在数据库窗口中的―对象‖下,单击―宏‖。

单击某个宏,然后单击数据库窗口中的―设计‖。

单击与要选择的宏操作对应的―条件‖单元格。

如果看不到―条件‖列,请在―视图‖菜单上单击―条件‖。

键入一个条件表达式。

关闭该宏。

与―有效性规则‖属性一样,―条件‖列表达式是一个条件表达式。它必须解析为True 或False。仅在条件为True 时才执行操作。

在―排序与分组‖框中

可以使用―排序与分组‖框定义报表的分组级别和排序选项。可以根据字段或表达式进行分组。例如,假定您要按国家、姓名和订单ID 的先后顺序对报表进行分组。如果姓名信息

存储在单独的字段(―姓氏‖和―名字‖)中,则需要使用如下图所示的表达式进行分组。

该表达式使用与号(&) 运算符合并文本值(通常称为字符串连接)。有关合并文本值的更多信息,请参见本文的合并文本值部分。

在―排序与分组‖框中输入表达式

在数据库窗口中的―对象‖下,单击―报表‖。

单击报表,然后单击数据库窗口中的―设计‖。

在―设计‖视图中打开报表。

在―视图‖菜单上,单击―排序与分组‖。

单击―字段/表达式‖列中的单元格。

在= 运算符后键入一个表达式。

返回页首

使用―表达式生成器‖

―表达式生成器‖可以帮助您创建表达式。―表达式生成器‖是一个可从写入表达式的大多数位置启动的工具。使用它可轻松访问数据库中所用字段和控件的名称,还可访问许多在写入表达式时可以使用的内置函数。可以使用―表达式生成器‖从头开始创建表达式,也可以从一些预先生成的用于显示页码、当前日期、当前日期和时间的表达式中进行选择。

表达式框

生成器的上部包含一个表达式框,可在其中构建表达式。可以使用生成器下面部分的三栏来

查找可粘贴到表达式框中的元素。也可以在表达式框中直接键入部分表达式。这样,通过将键入和粘贴操作配合使用,就可以构建一个表达式。

运算符按钮

―表达式生成器‖的中间部分显示了一些常用运算符按钮。要在表达式框中插入运算符,请单击相应的按钮。要显示可在表达式中使用的运算符列表,请单击下方左侧栏中的―操作符‖文件夹,然后在中间栏内单击所需的类别。右侧栏中随即列出选定类别的所有运算符。要插入某一运算符,请双击该运算符,或选中它并单击―粘贴‖。

表达式元素

下面部分包含三栏:

左侧栏显示了一些文件夹,这些文件夹列出了数据库中的表、查询、窗体和报表,以及可用内置函数、用户定义的函数、常量、运算符和通用表达式。

中间栏列出了左侧栏中所选文件夹的特定元素或元素类别。例如,如果单击左侧栏中的―内置函数‖,则中间栏会列出函数类别。

右侧栏列出了左侧栏和中间栏中所选元素的值(如果有)。例如,如果单击左侧栏中的―内置函数‖,然后单击中间栏中的一个函数类别,则右侧栏中会列出选定类别的所有内置函数。通过在表达式框中键入文本并从生成器的其他区域粘贴元素,可以创建表达式。例如,您可以单击左下方的栏来查看数据库中的任意对象以及函数、常量、运算符和通用表达式。当您单击左侧栏中的数据项时,其他栏会相应地发生变化。例如,当您单击左侧栏中的某个表名称时,中间栏会列出该表中的字段。当您双击―函数‖,然后单击―内置函数‖时,中间栏会列出所有函数类别,而右侧栏会列出这些类别中的函数。当您双击某一函数以将其插入表达式中时,函数和表示该函数所需参数的文本(以占位符文本形式显示)会出现在表达式框中。随后,您可以使用正确的参数值替换该文本。

在将标识符粘贴到表达式中时,―表达式生成器‖只插入当前上下文所需的部分标识符。例如,如果从―客户‖窗体的属性表中启动―表达式生成器‖,然后将该窗体的―Visible‖属性标识符粘贴到表达式中,则―表达式生成器‖只粘贴属性名称―Visible‖。如果在窗体上下文外部使用该表达式,则必须包括完整的标识符:Forms![客户].Visible。

在表、窗体或报表中启动―表达式生成器‖

单击将包含表达式的属性或操作参数框。

单击属性旁边的―生成器‖按钮。

在查询中启动―表达式生成器‖

单击将包含表达式的设计网格中的单元格。例如,单击希望提供条件的列的―条件‖单元格,或单击希望在其中创建计算字段的列的―字段‖单元格。

单击工具栏上的―生成器‖按钮。

您可以将―表达式生成器‖看作是查找和插入标识符名称(如字段、表、窗体和查询)等容易忘记的内容的一个方式。

返回页首

表达式的实际应用

本节介绍了使用表达式解决问题和计算窗体、报表和表所需信息的一些方法。

使用当前日期和时间为新记录添加时间戳

在某些表中,在添加记录时不断跟踪(―时间戳‖)日期或日期和时间是很重要的。要让Access 自动为您填充该值,可以创建一个数据类型为―日期/时间‖的字段,并将该字段的―默认值‖属性设置为Date() 或Now()。Date 函数返回在您计算机的系统时钟中存储的当前日期。

Now 函数返回当前日期和时间。

添加日期和时间戳字段

在数据库窗口中的―对象‖下,单击―表‖。

单击某个表,然后单击数据库窗口中的―设计‖。

在最上面的空行中,单击―字段名称‖列。

键入字段名称,如―输入日期‖。

单击―数据类型‖列,然后选择―日期/时间‖。

单击―常规‖选项卡,然后单击―默认值‖属性框。

键入Now() 或Date(),然后按Tab 键。

关闭该表。如果Access 询问是否要保存更改,请单击―是‖。

现在,只要您向表中添加新记录,Access 就会自动将日期或日期和时间插入―输入日期‖字段中。

合并文本值

如果您要合并两个或多个文本字段中的值,可以使用与号(&) 运算符。例如,您可能希望在―雇员‖窗体的窗体页眉中显示雇员的全名。您可以在主体节的文本框中输入雇员的名字和姓氏。

可以使用下面的表达式显示雇员的全名:

=[名字] & " " & [姓氏]

要合并两个或多个控件中的值,需使用& 运算符,并且应该用引号括起希望插入的值中间的任何内容(空格、标点符号或未更改的文本)。在本例中,使用字符串" " 在名字和姓氏之间插入了一个空格。

添加一个包含全名表达式的文本框

在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。

单击某个窗体或报表,然后单击数据库窗口中的―设计‖。

在工具箱中,单击―文本框‖工具。

注释如果看不到工具箱,请在―视图‖菜单上,单击―工具箱‖。

在窗体或报表上拖动指针,以创建文本框。

单击该文本框以将其选中。

单击―视图‖菜单上的―属性‖,然后单击―数据‖选项卡。

将―控件来源‖属性更改为=[名字] & " " & [姓氏],然后按Tab 键。

关闭该属性表。

在某些记录中,您所合并的字段可能没有任何值。这样的空缺值称为Null 值。在使用& 运算符和不包含值的字段时,Access 将为该字段返回一个零长度字符串。例如,如果雇员记录只包含姓氏,那么上述示例中的表达式将返回―名字‖字段的零长度字符串、空格和―姓氏‖字段中的值。

在合并值时,您可能希望仅当指定字段不为空时才添加某个值(如逗号)。例如,假定您有一个―客户‖表,并且希望合并报表的―城市‖、―地区‖和―邮政编码‖字段中的值。某些记录的―地区‖字段中可能不包含值。在这种情况下,如果使用& 运算符,最终―邮政编码‖前面会多出一个逗号。

要删除这个不需要的逗号,可以使用加号(+) 运算符,如下面的示例表达式所示:

=([城市] & (", " + [地区]) & " " & [邮政编码])

+ 运算符合并文本的方式与& 运算符相同。但是,+ 运算符还支持Null 传播。这意味着,如果表达式的任何部分为空,则整个表达式都将为空。在上述示例中,应考虑(", " + [地区]) 部分。因为使用了+ 运算符,所以仅在―地区‖字段中包含值时,括号中的表达式才能包含

逗号。如果不包含值,则Null 传播将发挥作用,并且括号中整个表达式的计算值为空。

创建计算控件以执行算术计算

可以使用表达式对两个或两个以上字段或控件中的值执行加、减、乘、除运算。例如,假设您记录了客户需要接收订单的日期以及发出订单的日期。通过―订购日期‖字段中的值减去―发货日期‖字段中的值可以计算出提前(或延迟)多少天发出订单。之所以能够这样做是因为Access 可以对日期执行算术计算。

日期计算的结果称为间隔,该值由两部分组成,包含小数点左边的天数部分和小数点右边的时间部分。如果返回的值是一个正数,则可以知道提前多少天发出订单。如果是一个负数,则可以知道推迟多少天发出订单。如果值为0,就可以知道订单是按时发出的。

添加一个带有表达式的文本框,以计算提前或延迟的天数

在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。

单击某个窗体或报表,然后在数据库窗口中单击―设计‖。

在工具箱中,单击―文本框‖工具。

注释如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。

在窗体或报表中拖动指针以创建文本框。

单击文本框以选中它。

单击―视图‖菜单上的―属性‖,然后单击―数据‖选项卡。

将―控件来源‖属性更改为=[订购日期]-[发货日期],然后按Tab 键。

关闭属性表。

在使用+、–、*、/ 或\ 运算符对两个值进行计算,而其中一个值为Null(即没有输入任何值)时,表达式的值也为Null。例如,如果上述表达式中的一个日期为Null,则整个表达式的值也将为Null。在报表中,这会导致显示空白区域。如果要将Null 值替换为0,则可以使用Nz 函数将Null 值转换为零。例如:

=Nz([订购日期]-[发货日期],0)

注释可以对表中的字段进行设计,以使用户无法输入Null 值。在设计表时,请将该字段的―必填‖属性设置为―是‖。还应将该字段的―默认值‖属性设置为一个非Null 值。

将两个控件中的值相加

通常,您可能需要将两个控件中的值加在一起。例如,要计算订单的总成本,则需要将―小计‖和―运费‖控件中的值加在一起,如下图所示。

要计算订单合计,可以在―订单‖窗体的主体节中创建一个文本框。

添加一个带有计算合计表达式的文本框

在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。

单击某个窗体或报表,然后在数据库窗口中单击―设计‖。

在工具箱中,单击―文本框‖工具。

注释如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。

在窗体或报表中拖动指针以创建文本框。

单击文本框以选中它。

单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。

按下表所示设置属性值。

属性设置

名称合计

控件来源=[小计]+[运费]

格式货币

关闭属性表。

将两个值相乘以计算销售税

假设您需要计算订单的销售税,并且销售税率存储在―销售税‖控件中,可以用―小计‖控件中的值乘以―销售税‖控件中的值来计算销售税。

要计算销售税,请在―订单‖窗体的主体节中创建一个文本框。

添加一个带有表达式的文本框以计算销售税

在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。

单击某个窗体或报表,然后在数据库窗口中单击―设计‖。

在工具箱中,单击―文本框‖工具。

注释如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。

在窗体或报表中拖动指针以创建文本框。

单击文本框以选中它。

单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。

按下表所示设置属性值。

属性设置

名称销售税

控件来源=[小计]*[销售税率]

格式货币

关闭属性表。

汇总和计数

通常,您需要计算存储在一组记录中的值的总和。例如,您可能需要计算报表中组页脚的组总计数,或者计算窗体中行数据项的订单小计。有时候,您可能需要计算数据项数,而不是对它们汇总。要计算一组记录的总和,您需要使用Sum 函数,要计算一组记录的数目,则需要使用Count 函数。

例如,要计算按客户分组显示订单的报表中订单的数目,可以使用下面的表达式:

=Count([订单ID])

可以使用Sum 和Count 函数的参数表达式中的字段名称,但不使用控件名。字段名称可以来自表或查询。甚至还可以使用查询中计算字段的名称。不过,如果想要得到计算控件中值的总计,必须在Sum 函数中重复在计算控件中使用的表达式。

如果想在窗体中多次引用同一表达式,或者要使用某个函数(如Sum),则应考虑在窗体的基本查询中是否可以包含该表达式。这样就可以在查询中(而不在窗体中)执行计算。而在查询中执行计算的速度通常比较快。

有关汇总与计数的详细信息,请参见下面的文章:

使用Access:报表中的汇总(英文)

使用Access:报表中的计数(英文)

Sum 函数(英文)

Count 函数(英文)

DSum 函数(英文)

DCount 函数(英文)

计算子窗体中的订单小计

在创建订单窗体时,经常使用一个主窗体和一个子窗体。主窗体和子窗体由公共字段(如―订单ID‖)链接。主窗体包含订单明细,如―付款人‖和―收货人‖信息,子窗体包含有关已订购的行数据项的详细信息,如产品、数量和单价。主窗体中的信息来自一个包含―订单‖表的查询。子窗体中的信息来自一个包含―订单明细‖表的查询。

如果使子窗体以一个包括计算字段的查询为基础来计算总价,则可以对―总价‖字段中的值进行求和,以计算小计。要计算订单小计,请在―订单‖子窗体的窗体页脚中创建一个文本框。

在子窗体中添加一个带有计算订单小计的表达式的文本框

在数据库窗口中的―对象‖下,单击―窗体‖。

单击子窗体,然后单击数据库窗口中的―设计‖。

在工具箱中,单击―文本框‖工具。

注释如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。

在窗体上拖动指针以创建文本框。

单击文本框以选中它。

单击―视图‖菜单上,单击―属性‖,然后单击―全部‖选项卡。

按下表所示设置属性值。

属性设置

名称订单小计

控件来源=Sum([总价])

格式货币

关闭属性表。

尽管是在子窗体上的文本框中计算订单小计的,但该值仅显示在主窗体中。要隐藏子窗体中的文本框,可以将其放在子窗体的窗体页脚中,并将子窗体的―默认视图‖属性设置为―数据表视图‖。在数据表视图中使用窗体时,Access 不显示窗体页眉或页脚。最后,可将子窗体插入主窗体中。

子窗体通常不能作为独立的窗体正常工作。子窗体通常被设计为依赖于主窗体中的某个值。仅在将子窗体插入主窗体中并建立了链接两个窗体的字段(如―订单ID‖)后,Access 才会将子窗体限制到适当的记录。例如,在将―订单‖窗体与子窗体一起使用时,主窗体上的―订单ID‖将限制子窗体中具有相同订单ID 号的记录。

引用主窗体上的订单小计

主窗体和子窗体上的控件可以相互引用。要引用子窗体上的值,可以使用一个表达式。如下图所示。

主窗体上子窗体控件的名称

―窗体‖属性,它提供了对子窗体的控件和属性的访问

子窗体上文本框控件的名称

要显示订单小计,请在―订单‖窗体的主体节中创建一个文本框。

将子窗体的小计显示在―订单‖窗体主体节的文本框中

在数据库窗口中的―对象‖下,单击―窗体‖。

单击―订单‖窗体,然后单击数据库窗口中的―设计‖。

在工具箱中,单击―文本框‖工具。

注释如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。

在窗体的主体节中拖动指针以创建文本框。

单击文本框以选中它。

单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。

按下表所示设置属性值。

属性设置

名称小计

控件来源=[订单子窗体].Form![订单小计]

格式货币

关闭属性表。

查找表中的值

在设计窗体时,您可能需要显示窗体没有绑定到的表或查询中的值。例如,您可能有一个绑定到―产品‖表中的―产品‖窗体。但在设计该窗体之后,您决定让它显示供应商联系人的姓名。而供应商联系人的姓名来自―供应商‖表。

可以使用DLookup 函数查找和显示另一个表或查询中的值。应为DLookup 函数提供三个参数:

要查找其值的字段的名称

字段所在的表或查询

用于查找记录的条件

要添加供应商联系人,请在设计视图中打开―产品‖窗体,然后添加带有联系人姓名标签的文本框。用于该文本框的表达式为:

=DLookup("[联系人姓名]","[供应商]","[供应商ID]=" & Forms!Products!SupplierID)

添加供应商联系人文本框

在数据库窗口中的―对象‖下,单击―窗体‖。

单击―产品‖窗体,然后单击数据库窗口中的―设计‖。

在工具箱中,单击―文本框‖工具。

注释如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。

在窗体中拖动指针以创建文本框。

单击文本框以选中它。

单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。按下表所示设置属性值。

属性设置

标签联系人姓名

控件来源=DLookup("[联系人姓名]","[供应商]","[供应商ID]=" & Forms!Products!SupplierID)

关闭属性表。

该表达式可对―供应商‖表进行搜索,并返回其供应商ID 与―产品‖窗体上―供应商ID‖控件中的值相匹配的供应商的联系人姓名。请注意使用& 运算符构建第三个参数的方式。应避免的一个常见错误是用引号将整个参数括起来,而不是仅将& 运算符前面的文本括起来。

注释作为使用DLookup 函数的一种替代方法,可以更改基本查询以包括所需的信息。使用查询通常更为高效。

打印报表中显示的日期

对于许多报表,您可能需要打印生成报表的日期。要让Access 为您填写日期,请使用Now 函数或Date 函数。Now 函数可返回在计算机时钟内存储的当前日期和时间。Date 函数仅返回当前日期。可以使用任意一种可用的日期和时间格式来设置这两个函数的结果格式。假设您想打印一份发票报表,并想打印以―中日期‖格式显示的发票日期(例如,31-Dec-04)。请在文本框或文本框的―控件来源‖属性中键入表达式=Date() 。

将打印日期添加到报表中

在数据库窗口中的―对象‖下,单击―报表‖。

单击某个报表,然后在数据库窗口中单击―设计‖。

在工具箱中,单击―文本框‖工具。

注释如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。

在报表中拖动指针以创建文本框。

注释如果看不到页面页脚,请在―视图‖菜单上单击―页面页眉/页脚‖。

单击文本框以选中它。

单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。

按下表所示设置属性值。

属性设置

名称打印日期

控件来源=Date()

格式中日期

关闭属性表。

在报表中显示页码

如果所设计的报表超过一页,则可能需要添加页码。可以使用―页码‖属性添加页码,该属性可在预览或打印报表时自动显示页数。―页码‖属性仅在预览或打印报表时可用,因此在属性表中并不显示。

可以像使用函数(如Now 或Date)一样使用文本框的―控件来源‖属性中的―页码‖属性。将文本框放在报表的页面页眉或页面页脚中(注意,不包括―页码‖属性后面的括号)。

可以同时使用―页码‖属性和―总页数‖属性来构建一个表达式。―总页数‖属性可返回报表中的总页数。例如,下面的表达式将生成格式为第1 页共10 页的页面编号。

="第" & [Page] & " 页" & "共" & [Pages] & " 页"

向报表中添加页面编号的前置样式

在数据库窗口中的―对象‖下,单击―报表‖。

单击某个报表,然后在数据库窗口中单击―设计‖。

在工具箱中,单击―文本框‖工具。

注释如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。

在报表的页面页脚部分拖动指针以创建文本框。

注释如果看不到页面页脚,请在―视图‖菜单上单击―页面页眉/页脚‖。

单击文本框以选中它。

单击―视图‖菜单上的―属性‖,然后单击―数据‖选项卡。

将―控件来源‖属性框中的值更改为="Page " & [Page] &" of " & [Pages]。

关闭属性表。

注释在―表达式生成器‖中,Access 提供了一些用于页面编号的通用表达式。

显示报表中的部分值

如果一个字段中的前几个或最后几个字符有特殊含义,则可以围绕这些字符来组织报表。例如,如果产品标识代码中的前两个字符指示产品的类型,则可以按代码中的前两个字符对产品进行分组,然后在组页眉中显示这些字符来标识每个组。

使用Left 函数可提取文本字段值中前n 个字符,使用Right 函数可提取最后n 个字符。在这两种情况中,第一个参数是字段名称或文本表达式,第二个参数是要提取的字符数。下表显示了利用这两个函数的表达式。

如果―部分ID‖中的值为使用的表达式返回的值

AA105 =Left([部分ID],2) AA

AA105 =Right([部分ID],3) 105

有关Left 函数和Right 函数的详细信息,请参见Left 函数(英文)和Right 函数(英文)文章。

在按字母顺序排列的列表中使用字母分隔符

为了在产品列表中进行快速查找,可以按产品名称的第一个字母对产品进行分组,并在组页眉中显示该字母,如下图所示。

要每次在产品名称的第一个字母改变时开始一个新组,并按字母顺序对每个组中的产品进行排序,请按下表所示设置―排序与分组‖框中的属性。

字段/ 表达式排序

次序组页眉组页脚

依据组间距保持同页

产品名称升序可以可以前缀字符 1 整个组

产品名称升序不可以不可以每个值 1 不可以

显示―排序与分组‖框

在―设计视图‖中打开报表。

在―视图‖菜单上,单击―排序与分组‖(或单击工具栏上的―排序与分组‖)。

要在一个新组的开始处仅显示名称的第一个字母,请在―产品名称‖标题的文本框中使用下面的表达式:

=Left([产品名称],1)

显示日期的对应数值

可以按一段时间的数值组织报表中的记录—时间段可以是年、季度、月或周。例如,一年分为53 个日历周(一年的第一周和最后一周通常不完整)。例如,从1994 年12 月18 日到1994 年12 月24 日之间的一周的数值为52。使用这些数值,可以按一年中的第几周对发送的订单进行分组。

要查找某个日期的数值,可以使用DatePart 函数。该函数的格式为:

DatePart(interval, date)

interval 参数是要返回的日期部分的缩写。有效的缩写示例为:―yyyy‖表示四位数字格式的年份,―q‖表示日历季度,―m‖表示月份。date 参数是字段名称或文本日期,如―1-Jul-94‖。注释还可以选择向DatePart 函数添加两个参数—一个表示一周的第一天,另一个表示一年的第一周。在这两个参数中,可以接受通过FirstWeekday 和FirstWeek 视图选项设置的值,也可以自己指定值。

下表列出了为字段名―假日‖返回的结果示例。―假日‖字段可存储与您的公司有业务往来的国家/地区的假日。

如果―假日‖中的值为使用的表达式返回的值

1-Jan-94 =DatePart("w",[假日]) 7(一周的第几天)

31-Dec-94 =DatePart("ww",[假日]) 53(一年的第几周)

31-Dec-94 =DatePart("yyyy",[假日]) 1994(一年的四位数字)

有关使用DatePart 函数的详细信息,请参见文章DatePart 函数(英文)。

要了解有关创建分组报表的详细信息,请参见文章创建分组或汇总报表。

比较多个年份的结果

如果需要对一年以上的销售结果进行分析,那么按时间段(例如按季度或月份)对结果进行分组比较方便。这样,可以快速查看一年中某个时间段的业绩与另一年中的相同时间段的业绩的比较结果。例如,假设您想查看显示发送的订单数量和销售总计的―按季度汇总销售额‖报表。

要创建组页眉和页脚以及指定该报表的排序次序,请按下表所示设置―排序与分组‖框中的属性。注意,在发送订单时是使用表达式按季度进行分组的。

字段/ 表达式排序

次序组页眉组页脚

依据组间距保持同页

=DatePart("q",

[发货日期])

升序可以可以每个值 1 可以

发货日期升序不可以可以年 1 不可以

发货日期升序不可以不可以每个值 1 不可以

订单ID 升序不可以不可以每个值 1 不可以

显示―排序与分组‖框

在―设计视图‖中打开报表。

在―视图‖菜单上,单击―排序与分组‖(或单击工具栏上的―排序与分组‖)。

要在一个新组的开头显示某个季度,请使用以下与―排序与分组‖框中相同的表达式,在组页

眉中放置一个文本框:

=DatePart("q", [发货日期])

计算行数据项总数

假设您需要一个显示有关订单信息的发票报表,并且需要计算行数据项的总价(每种产品的总销售额)。请首先创建一个提供报表数据的查询,在该查询中包括所需表(如―订单‖表、―订单明细‖表和―客户‖表)中所有需要的字段。然后可以在查询设计网格中创建一个计算字段,以计算发票上每种产品的总价。

创建计算字段

在数据库窗口中的―对象‖下,单击―查询‖。

单击某个查询,然后单击数据库窗口中的―设计‖。

在查询设计网格中,单击一个空列的―字段‖行。

在―字段‖单元格中键入一个名称、冒号(:) 和一个表达式。要计算总价,可以使用如下表达式:

总价: CCur([订单明细].单价*[数量]*(1-[折扣])/100)*100

请注意,在查询设计网格中创建计算字段时,请不要在表达式前面使用= 运算符。

标识延迟发送的订单

在最佳情况下,订单应按时发送,但有些订单偶尔可能会在订购日期之后发出,而且您想在报表中标识这些订单。要在跟踪发货的报表中标记所有延迟发送的订单,可以在标记为―延迟发送‖的复选框中显示一个复选标记。由于多数订单都是按时发送的,复选标记比标记为―按时‖或―延迟‖的文本更容易找到。

该报表的表达式将―发货日期‖字段中的值与―订购日期‖字段中的值进行比较。如果―发货日期‖字段中的值大于(即一个较晚的日期)―订购日期‖字段中的值,该表达式将返回值True,并且报表将在复选框中显示一个复选标记。如果值为False,报表将保留该复选框为空。

向报表中添加―延迟发送‖复选框

在数据库窗口中的―对象‖下,单击―报表‖。

单击某个报表,然后在数据库窗口中单击―设计‖。

在工具箱中,单击―复选框‖工具。

注释如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。

在报表的主体节中拖动指针以创建复选框。

单击该复选框将其选中。

在―视图‖菜单上选择―属性‖,然后单击―全部‖选项卡。

按下表所示设置复选框的属性。

属性设置

名称延迟发送

控件来源=[发货日期]>[订购日期]

可见性可以

关闭属性表。

返回页首

运算符表

Access中的常用函数

Access中的常用函数 1.Count 函数 计算查询所返回的记录数 语法 Count(expr) expr 占位符代表字符串表达式,它标识的字段包含了要统计的数据,或者是使用该字段的数据执行计算的表达式。expr 中的操作数可包括表字段名或函数名(可以是固有的或者用户自定义的函数,但不能是其他 SQL 聚合函数)。可以统计包括文本在内的任何类型数据。 说明 可以使用Count来统计基本查询的记录数。例如,可以通过Count来统计已发往特定城市的定单数目。 尽管 expr 能够对字段执行计算,但是Count仅仅计算出记录的数目。记录中所存储的数值类型与计算无关。 Count函数不统计包含Null字段的记录,除非 expr 是星号 (*) 通配符。如果使用了星号通配符,Count会计算出包括包含Null字段在内的所有记录的数目。使用Count(*)方式比使用Count([Column Name])方式快很多。不要用单引号 (' ') 将星号括起来。下面的示例计算 Orders 表中的记录数目。 SELECT Count(*) AS TotalOrders FROM Orders; 如果 expr 标识多个字段,那么Count函数仅统计至少有一个字段为非Null值的记录。如果所有指定字段均为Null值,那么该记录不被统计在内。可以使用 & 号分隔字段名。下面的示例显示了如何将计算限于那些 ShippedDate 或 Freight 为非Null值的记录: SELECT Count('ShippedDate & Freight') AS [Not Null] FROM Orders; 可以在查询表达式中使用Count。也可以将该表达式用于QueryDef对象的SQL属性中,或者在基于 SQL 查询创建Recordset对象时使用该表达式。

ACCESS关于表达式生成器

ACCESS关于表达式生成器的几个符号的意思. 例如Like,如果在查询设计视图里输入条件为: Like "*你*" 那就可以模糊查询该字段这个关键字:你 如果输入: Like "*" & [请输入关键字] & "*" 那就可以弹出一个对话框,可输入模糊搜索的关键字。 我想问的是,[ ] & " ' 这几个符号的具体作用是什么? 因为如果输错了一点就不行,例如这样运行就没有查询结果: Like '*" & [请输入关键字] & "*' 这样却可以: Like '*你*' & 是字符串连接符,用于连接字符串,连接表达式等等.. * 表示全部、多个的字符,而? 表示任何单一字符 " " 用于表示字符串,在引号内输入 在access的sql中单引号和双引号都可用,只要成对出现就可以。 你可以输入以下的: Like '*'&[请输入关键字]&'*' 发现用单引号得到的也是同样结果吧! 再举例:Like '*你*' 如果改为Like "*你*" 也可以。 但在SQL中(不是Access的SQL), 这样是语句错误的: Select * from 表名where 字段名="你" 必须: Select * from 表名where 字段名='你' 而在Access的SQL中这两句都可以。 Like "你?" 则字符串:你好、你们都满足条件。 Like "你*" 则字符串:你们、你们好、你们最近怎样这些都满足这个条件。 Like "*你" 则字符串:是你、只有你、不理你这些都满足这个条件。Like "*[你,的]*" 则则只有字符串:你好、的确、好的、是你这些满足条件,注意是只有。

Access表达式

Access上机难点类型题汇总 ※基本操作(表)函数类型题集合:(书上40页输入掩码背下来) 1、上一年度五月一日以前(含)的日期(规定:本年度年号必须用函数获取)。 <=DateSerial(Year(Date())-1,5,1) 2、下一年度的一月一日(规定:本年度的年号必须用函数获取)。 DateSerial(Year(Date())+1,1,1) 3、本年度九月一日(规定:本年度年号必须由函数获取) DateSerial(Year(Date()),9,1) 4、系统当前年一月一号。 DateSerial(Year(Date()),1,1) 5、默认值设置为系统当前日期。Date() 6、默认值设置为系统当前日期的前一天。Date()-1 7、默认值设置为系统当前日期的后一天。Date()+1 8、销售业绩表:判断主键 选前三个字段为主键(“时间”、“编号”、“物品号”) 9、(19套1)分析设置表”tScore”主键 选前二个字段为主键(“学号”、“课程号”) 其与的都是一个主键! ※简单应用(查询)类型题集合: 一、字符串函数类型题: 1、"姓名"字段的第一个字符为姓,剩余字符为名。将姓名分解为姓和名两部分。 字段行输入:姓:Left(([姓名]),1) 字段行中输入:名:Mid([姓名],2) 2、房间号的前两位为楼号。 字段行中输入:楼号:Left([房间号],2) 3、学号字段的前4位代表年级。 字段行中输入:年级:Left([学生ID],4) 4、查找"身份证"字段第4位至第6位值为"102"的纪录。 条件行中输入:Mid([身份证],4,3)= "102" 5、将编号的第一个字符更改为"1" 更新到中输入:"1" & Mid([编号],2) 6、"姓名"字段的第一个字符为姓。要求将学生学号和学生的姓组合在一起,追加到目标表的"标识"字段中。 字段行中输入:标识:[学号]+Left([姓名],1) 7、查找姓名为三个字的记录。姓名为二个字的记录 条件行输入:Len([姓名])= "3" Len([姓名])= "2" 二、日期函数类型题: 1、计算教师的"工龄"。 字段行中输入:工龄:Year(Date())-Year([工作时间]) 2、查找并显示聘期超过5年(使用函数)的。

Access表达式

什么是表达式? Access 中的表达式相当于Excel 中的公式。一个表达式由多个单独使用或组合使用以生成某个结果的可能元素组成。元素可能包括标识符(字段名称、控件名称或属性名称)、运算符(如加号(+) 或减号(-))、函数、常量和值。您可以使用表达式执行计算、检索控件值、提供查询条件、定义规则、创建计算控件和计算字段,以及定义报表的分组级别。 以下是一些表达式示例。 表达式用途 =[订购日期]-[发货日期] 计算报表上两个文本框控件中的值之差 Date() 将表中字段的默认值设置为当前日期 创建查询中的计算字段 总价: CCur([订单明细].单价*[数量]*(1-[折 扣])/100)*100 Between #1/1/2005# And #12/31/2005# 用于输入查询中―日期/时间‖字段的条件 =[订单子窗体].Form!订单小计返回―订单‖窗体的―订单‖子窗体上的―订单小 计‖控件的值 > 0 设置表中数值字段的有效性规则 正如以上示例表达式所显示的那样,Access 中的表达式不仅仅是一种计算。表达式可用于多种不同的用途。 您可能还注意到示例表达式在某些方面是互不相同的。例如,某些表达式以= 运算符开头。当计算窗体或报表上某一控件的值时,使用= 运算符作为表达式的开头。而在其他情况下,则不使用= 运算符。例如,当您在查询或者字段或控件的―默认值‖或―有效性规则‖属性中输入表达式时,不使用= 运算符。 标识符 标识符是字段、属性或控件的名称。在表达式中使用标识符可引用与字段、属性或控件关联的值。例如,请看表达式=[订购日期]-[发货日期]。此表达式将―订购日期‖字段或控件的值减去―发货日期‖字段或控件的值。在此表达式中,―订购日期‖和―发货日期‖都是标识符。 运算符 Access 支持多种运算符,其中包括预期的算术运算符,如+、-、*(乘)和/(除),以及用于比较两个值的比较运算符、用于连接文本的文本运算符、用于确定True 或False 值的逻辑运算符,还包括Access 所特有的其他运算符。有关运算符的详细信息,请参见本文的运算符列表一节。 函数 函数是可在表达式中使用的内置程序。可将其用于执行计算、处理文本和日期、汇总数据以及执行多种操作。例如,一个最常用的函数是Date。Date 函数可返回当前日期。您可以在为表中字段设置默认值的表达式中使用此函数。这样,无论何时添加一条新记录,此字段的默认值都为当前日期。 某些函数需要使用参数。参数是一个充当函数输入的值。如果函数需要使用多个参数,则需要使用逗号将参数分隔开。例如,请考虑以下表达式示例中的Format 函数: =Format(Date(),"mmmm d, yyyy") 在此示例中,我们提供两个参数。第一个参数是Date 函数。通常可以将一个函数返回的值作为参数提供给另一个函数。在本例中,我们提供由Date 函数返回的当前日期。第二个参数(与第一个参数以逗号分隔)是用于告知Format 函数如何设置日期格式的文本字符串。请注意,文本字符串应用引号括起来。一般而言,当您需要提供文本时,请将其放在引号中。

access常量变量常用函数与表达式

补充实验一常量、变量、常用函数与表达式[实验目标] ·正确书写不同类型的常量; ·掌握变量的赋值及使用方法; ·熟练掌握常用函数的用法; ·根据要求正确书写表达式。 [实验内容] ·常量的类型; ·变量的操作; ·常用函数; ·表达式的构建。 [实验环境] 本次实验的全部实验内容均要求在VBE的立即窗口中进行。 [方法分析与操作步骤] 1,常量 (1)数值型 ? 100 ? 1.45e3 ? 1.45e-2 (2)字符型 ? ”100” ? “a1b0c0” ? “abcd” (3)逻辑型 ? True ? False (4)日期型 ? # 06/20/12 # ? #2012/06/18# ? # 06-20-12 # ? # 2012-06-18 # ? #2012/06/18 10:32 # ? #2012/06/18 10:32 pm# 2.变量 nVar_x = 234. 5 cVar_y = “abc123” ? “nVar_ x=”, nVar_ x ? “cVar_y = “, cVar_y ? “nVar_ x=”& nVar_ x ? “cVar_y = “& cVar_y 3.函数

(l)数学函数 ①abs(); ? abs(36.9) ? abs( - 36.9) ②int(); ? int(36.9) ? int( - 36.9) ? int(36.3) ? int( - 36.3) ③fix(); ? fix(36.9) ? fix( - 36.9) ? fix(36.3) ? fix( - 36.3) ④sqr(); ? sqr(9) ? sqr(3) ? sqr(0) ? sqr( -9) ‘显示出错提示框 ⑤sin()、cos()、tan(); ? sin(60/180*3.14) ‘计算60°角的正弦值 ? cos(90/180*3.14) ‘计算90°角的余弦值 ? tan(45/180*3.14) ‘计算45°角的正切值 ⑥rnd(); ? rnd() ’产生O~l之间的随机数 ? rnd ? rnd(0) ‘产生最近生成的随机数 ? int(100*rnd) ‘产生[0,99]的随机整数 ? int(101*rnd) ‘产生[0,100]的随机整数 ? int(100*rnd+1) ‘产生[1,100]的随机整数 ? int(100 + 200*rnd) ‘产生[100,299]的随机整数 (2)字符串函数 ①Instr(); ? instr (“access”, ” e” ) ? instr ( “access” , “E” ) ? instr (1, “access” , “E” , 1) ? instr ( “access”, “s”) ? InStr (3,”aSsiAB”,”a”,1) ‘返回5(从字符S开始,检索出字符A,不区分大小写) ②len(); ? len(”南京财大”) ? len(”中文Access”) ? len(“2500”) ③left( ), right( ), mid( ) ;

access表达式与函数

表达式: 表达式是许多Microsoft Access 运算的基本组成部分。表达式是可以生成结果的运算符号和操作数的组合。例如,可以在窗体或报表的控件中使用下列表达式来显示“小计”和“运货费”控件的数值总和:= [小计] + [运货费] 常见的运算符如算术运算符“=”,“+”,“-”,“*”,“/”;比较运算符“>”,“<”,“>=”,“<=”,“<>”,“=”;逻辑运算符“and”,“or”,“not”;连接运算符“&”,“+”;及常用的!和.(点)运算符。 常见的操作数如字符串,日期/时间值,常量,变量,函数及引用窗体或报表中的字段值,控件值或属性等。 常见表达式示例: 数学及比较运算表达式 日期表达式 逻辑运算表达式 通配符表达式

聚合函数表达式 Abs 函数 返回参数的绝对值,其类型和参数相同。 语法 Abs(number) 必要的number参数是任何有效的数值表达式,如果number 包含 Null,则返回Null,如果number 是未初始化的变量,则返回 0。 说明 一个数的绝对值是将正负号去掉以后的值。例如,ABS(-1) 和 ABS(1) 都返回 1。 Array 函数 返回一个包含数组的 Variant。 语法 Array(arglist) 所需的arglist参数是一个用逗号隔开的值表,这些值用于给Variant所包含的数组的各元素赋值。如果不提供参数,则创建一个长度为 0 的数组。 说明 用来表示数组元素的符号由变量名、圆括号以及括号中的所需元素的索引号组成。在下面的示例中,第一条语句创建一个Variant 的变量 A。第二条语句将一个数组赋给变量 A。最后一条语句将该数组的第二个元素的值赋给另一个变量。 Dim A As Variant A = Array(10,20,30) B = A(2) 使用Array函数创建的数组的下界受Option Base语句指定的下界的决定, 除非Array 是由类型库(例如VBA.Array )名称限定。如果是由类型库名称限定,则Array不受Option Base的影响。 注意没有作为数组声明的Variant 也可以表示数组。除了长度固定的字符串以及用户定义类型之外,Variant 变量可以表示任何类型的数组。尽管一个包含数组的Variant 和一个元素为Variant 类型的数组在概念上有所不同,但对数组元素的访问方式是相同的。 Asc 函数

Access函数表达式的示例

Access函数表达式的示例 在Microsoft Access 中许多操作中都要使用表达式,包括创建计算控件、查询、筛选准则、默认值、有效性规则和宏的条件。通常,创建表达式最简捷的方法就是找到类似的表达式示例,然后对它进行修改。 请选择: 一、用于窗体和报表中的表达式示例 1、处理窗体和报表中文本值的示例 下表列出了可在窗体和报表的计算控件中使用的表达式示例: 注释 计算控件中的表达式应使用= 操作符开头。 在设置计算控件的Name 属性时,应确保使用唯一的名称。不要使用表达式中使用的控件名称。 Left 函数 返回Variant (String),其中包含字符串中从左边算起指定数量的字符。 语法 Left(string, length) Left 函数的语法有下面的命名参数:

说明:欲知string 的字符数,使用Len 函数。 注意:LeftB 函数作用于包含在字符串中的字节数据。所以length 指定的是字节数,而不是要返回的字符数。 Right 函数 返回Variant (String),其中包含从字符串右边取出的指定数量的字符。 语法 Right(string, length) Right 函数的语法具有下面的命名参数: 注意:RightB 函数作用于包含在字符串中的字节数据。所以length 指定的是字节数,而不是指定返回的字符数。 LTrim、RTrim与Trim 函数 返回Variant (String),其中包含指定字符串的拷贝,没有前导空白(LTrim)、尾随空白(RTrim) 或前导和尾随空白(Trim)。 语法 LTrim(string) RTrim(string) Trim(string) 必要的string参数可以是任何有效的字符串表达式。如果string包含Null,将返回Null。 IIf 函数 根据表达式的值,来返回两部分中的其中一个。 语法 IIf(expr, truepart, falsepart) IIf 函数的语法含有下面这些命名参数: 个副作用。例如,如果falsepart 产生一个被零除错误,那么程序就会发生错误,即使expr 为True。

Access的各种函数归纳总结

1、数组的使用 Dim 数组名( [下标下界to ] 下标上界) [As 数据类型] Dim 数组名( [ 下界to ] 上界[ , …] ) [ As 数据类型] 说明:As选项缺省时,数组中各元素为变体数据类型。 下标下界的默认值为0,如果设置下标下界为非0值,则要使用to选项。 例子:Dim aa ( 5 ) As Single Dim bb ( 1 to 10 , 2 to 20 ) As String Dim cc ( 2 to 5 , 3 to 7 , 10) As Boolean Dim dd ( 3 , 1 to 4 ) 可以在模块的通用声明部分用Option Base来指定数组的默认下标下界。 Option Base 1 设置数组的下标下界为1 Option Base 0 设置数组的下标下界为默认值 2、整除 对两个操作数做除法运算并返回一个整数。 当操作数是小数时,首先被四舍五入为整型或长整型,然后再进行整除运算。 如果运算结果是小数,系统自动将其截断为整型或长整数,不再进行四舍五入处理。 3、取模 对两个操作数做除法运算并返回余数 如果操作数有小数时,则系统将其四舍五入为整数后再进行运算。 结果的正负号与被除数相同 4、& 运算符&两边的操作数可以是字符型、数值型或日期型。进行连接操作前先将数值型、日期型转换为字符型,然后再做连接运算。 5、+ 如果两边的操作数都是数字字符串,则做字符串连接运算 如果两边的操作数都是数值型,则做普通的加法运算 如果一个是数字字符串,另一个为数值型,则系统自动将数字字符串转化为数值,然后进行算术加法运算。 如果一个是非数字字符串,另一个为数值型,则出错 6、关系运算符号< > = 如果参与比较的两个操作数都是数值型,则按它们的大小进行比较。 如果参与比较的两个操作数都是字符型,则从左到右一一对应比较。 汉字字符按汉语拼音比较大小,且大于西文字符 字母不区分大小写,且大于数字 汉字字符>西文字符(大小写相同)>数字>空格 7、绝对值函数 Abs(<数值表达式>) 例题:Abs(-25/5)=5 8、向下取整 Int(<数值表达式>) 参数为负值时返回小于等于参数值的最大负数。 例题:Int(3.56)=3 Int(-3.56)=-4 9、取整函数 Fix(<数值表达式>) 参数为负值时返回大于等于参数值的最小负数 例题:Fix(3.56)=3 Fix(-3.56)=-3 10、自然指数函数 Exp(<数值表达式>) 功能:计算e的N次方 例题:Exp(6/3-1)=2.71828 Exp(0)=1 11、自然对数函数 Log(<数值表达式>)

相关主题
相关文档
最新文档