Ms Access 格式

2025年3月17日 | 阅读 7 分钟

在本模块中,您将学习如何在 MS Access 中实现 Format 函数。用户可以将数值作为 Format 函数的参数传递。

Format 函数允许用户将数值传递给函数并返回一个 Variant 类型的字符串。格式化是根据 Format 表达式中指定的说明执行的。

注意:在 MS Access 中使用此函数时存在一个问题。本年度最后一个被视为下一年第一周的星期一,在本年度仅被视为第 53 周。因此,请检查本年度的最后一周,因为它可能会返回错误的周数。

语法

MS Access 中该函数的语法如下:

传递给 Format 函数的参数

Expression:在 Format 函数中必须传递一个表达式。在 Format 函数中,用户可以传递这两个参数:第一个参数应该是 Format 函数用于格式化值的有效表达式。

Format:在函数中传递 Format 参数不是必需的。Format 应该是有效的命名格式或用户定义的格式表达式。此参数用于指定要应用于表达式的格式。系统中可以指定多种格式,您也可以定义自己的格式。

MS Access 中一些预定义的格式包括:

格式说明
数值的Value 该格式用于表示数值。数值不包含千位分隔符。
货币 (Currency)它们用于表示应用程序中的货币交易。数值包含千位分隔符。数值最多保留两位小数。
固定此格式要求在小数点左侧至少打印一位数字,在小数点右侧打印两位数字。用户也可以在两侧打印更多数字。
标准版这是表示大数值的最佳格式之一,使其相对容易理解。它包含千位分隔符。数值在小数点前必须有一个数字,在小数点后必须有两个数字。
PercentPercent 格式用于显示数字的百分比值。百分比值等于数字乘以 100。百分比由值末尾的百分号表示。数值最多保留小数点后两位。
科学计数法该值以科学计数法表示。它只在小数点前表示一位数字,并且使用指数表示值。
Yes/No如果数字为 0,则视为 No。对于任何其他值,都视为 Yes。
True/False如果数字为 0,则视为 False。对于任何其他值,则视为 True。
On/Off如果数字为 0,则视为 Off。对于任何其他值,则视为 On。

Format 函数中的其他参数

在 MS Access 的 Format 函数中可以传递两个附加参数。这两个参数是 firstdayofweek 和 firstweekofyear。当用户希望在年底格式化日期时间时,会使用这些功能。

要将这些参数添加到函数中,用户需要遵循给定的语法:

Firstdayofweek:此参数是可选的。它包含一个常量值,用于指定一周的第一天。

Firstweekofyear:这也是一个可选参数。常量值指定一年的第一周。

firstdayofweek 包含以下设置:

Constant描述
vbUseSystem0该值用于在参数中实现 NLS API 设置。
vbSunday1它是该参数的默认值。表示星期日。
vbMonday2表示星期一。
vbTuesday3表示星期二。
vbWednesday4表示星期三。
vbThursday5表示星期四。
vbFriday6表示星期五。
vbSaturday7表示星期六。

firstweekofyear 需要以下设置:

Constant描述
vbUseSystem0该值用于在参数中实现 NLS API 设置。
vbFirstJan11这是该参数的默认值。它从包含 1 月 1 日的那一周开始。
vbFirstFourDays2一年中的第一周将是包含当年四天的那一周。
vbFirstFullWeek3一年中的第一周将是该年的第一个完整周。

如果用户在函数中不指定格式而只指定数字,会发生什么?

如果用户在使用 Format 函数时未指定数字,Format 函数的工作方式类似于 MS Access 中的 Str 函数。使用 Format 函数处理数字时的问题在于它不为符号的存储提供额外的空间。对于正数,没有前导空格用于符号。但是,如果用户使用 Str 函数而不是 Format 函数转换数字,则数字会有前导空格来存储符号。

假设用户格式化了一个非本地化的数字字符串。格式可以是预定义的,也可以是用户定义的。用户还可以定义一个格式,以确保数字格式适合用户的所有需求。

注意:如果您在 Format 函数中使用 Calendar 属性,您必须检查 Calendar 属性设置。如果日历设置为公历,那么传递给函数的表达式也应该是公历。如果 VBA Calendar 属性设置为回历,那么表达式也应该是回历。

大多数时候,我们使用公历,并且如果日历属性设置为公历,那么日期、月份和年份的符号保持不变。但是,如果设置为回历,则符号会相应更改。

注意事项

用户可以使用 Format 函数来格式化不同的数据类型。下面是可以使用该函数格式化的数据类型列表以及格式类型:

要格式化的内容要执行的格式化
数字该应用程序提供了各种预定义的数字格式。用户也可以定义自己的数字格式。
日期和时间该应用程序提供了各种预定义的日期和时间格式。用户也可以定义自己的日期和时间格式。
日期和时间序列号用户可以使用日期和时间格式,也可以使用数字格式来格式化此类数据。
字符串要格式化字符串,用户可以定义一个满足用户所有需求的字符串格式。

在 MS Access 中实现 Format 函数

Format 函数通过表达式来实现。这意味着用户可以在使用表达式的任何地方实现 Format 函数。

您可以直接在查询中实现 Format 函数,或者在使用报表中控件源属性的表达式时实现。当将表达式分配为特定字段一部分的别名时,也可以实现 Format 函数。

示例

让我们看一些例子来理解如何在 MS Access 中使用 Format 函数。

在 VBA 代码中实现 Format 函数

让我们看一些例子来理解如何在 Microsoft Access 的 VBA 代码中使用 Format 函数。

在上面的示例中,变量 PVal 被声明为字符串,并被赋值为 '0.567'。但是,当我们实现 Format 函数后,该变量现在存储 "56.70%"。

在 SQL/查询中实现 Format 函数

让我们看一些例子来理解如何在结构化查询语言或查询中使用 Format 函数。

该查询允许用户将单元价格作为数值输入到系统中,输入的数值将被转换为货币值。货币值用于表示应用程序中的货币值。数值由千位分隔符(,)分隔。数值最多保留两位小数。由于我们在查询中没有使用任何标签,格式化后的结果将显示在名为 Expr 的列中。

用户可以直接在查询中更改列名,使其更易于理解。

例如

执行此查询时,结果将显示在名为 CostOfProduct 的列中。

下面,我们在 MS Access 的查询中使用了 Format 函数:

Ms Access Format

使用 Format 函数处理零长度字符串

MS Access 2.0 及更早版本允许用户实现 Format 函数,为零长度字符串返回一个值,为字符串中的值返回另一个值。

但是,在 Access 的后续版本中,用户必须首先检查字符串是否为 Null。为此,用户可以在表达式中使用 IIf 函数。一旦检查出字符串为 Null,用户就可以基于此返回相应的值。

注意:仅当字符串为 Null 时才需要此操作;否则,它们与其他 Format 函数的工作方式类似。