返回一个 Variant (String) 值,其中包含根据格式表达式中所包含的指令设置格式的表达式。
| 警告 使用此函数时存在问题。 在某些日历年中的最后一个星期一可以作为第 53 周返回,而它应该是第 1 周。 有关详细信息和解决方法,请参阅 Format 或 DatePart 函数可能会为一年中的最后一个星期一返回错误的周数。 |
|---|
语法
设置 ( * 格式expression [, format ] [, firstdayofweek ] [, firstweekofyear ] )
Format 函数语法具有下列参数:
| 参数 | 说明 |
|---|---|
| expression | 必需。 任何有效表达式。 |
| format | 可选。 有效的命名或用户定义的格式表达式。 |
| firstdayofweek | 可选。 一个常量,用于指定一周的第一天。 |
| firstweekofyear | 可选。 指定一年中第一周的常量。 |
“设置”
format 参数可以使用各种设置,具体取决于表达式参数的数据类型。 有关有效格式表达式的详细信息,请参阅下表中列出的文章。
| 对于使用此数据类型的表达式... | 请参阅文章 |
|---|---|
| 任何类型 | Format 属性 |
| 日期/时间 | 设置日期和时间字段的格式 |
| 数字 | 设置数字或货币字段的格式 |
| 文本和备忘录 | 设置文本字段格式 |
| 是/否 | Format 属性 - Yes/No 数据类型 |
firstdayofweek 参数具有以下设置:
| 常量 | 值 | 说明 |
|---|---|---|
| vbUseSystem | 0 | 使用 NLS API 设置。 |
| VbSunday | 1 | 星期日 (默认) |
| vbMonday | 2 | 星期一 |
| vbTuesday | 3 | 星期二 |
| vbWednesday | 4 | 星期三 |
| vbThursday | 5 | 星期四 |
| vbFriday | 6 | 星期五 |
| vbSaturday | 7 | 星期六 |
firstweekofyear 参数具有以下设置:
| 常量 | 值 | 说明 |
|---|---|---|
| vbUseSystem | 0 | 使用 NLS API 设置。 |
| vbFirstJan1 | 1 | 从 1 月 1 日发生 (默认) 的那一周开始。 |
| vbFirstFourDays | 2 | 从一年中至少有四天的第一周开始。 |
| vbFirstFullWeek | 3 | 从一年中的第一个完整周开始。 |
备注
| To 设置格式 | 要执行的操作 |
|---|---|
| 数字 | 使用预定义的命名数字格式或创建用户定义的数字格式。 |
| 日期和时间 | 使用预定义的命名日期/时间格式或创建用户定义的日期/时间格式。 |
| 日期和时间序列号 | 使用日期和时间格式或数字格式。 |
| 字符串 | 创建用户自己的用户定义的字符串格式。 |
如果您尝试在不指定 格式的情况下设置数字格式, Format 将提供类似于 Str 函数的功能,尽管它已在国际上通用。 但是,使用 Format 格式化为字符串的正数不包括为值符号保留的前导空格;使用 Str 转换的那些将保留前导空格。
如果要设置非本地化数字字符串的格式,则应使用用户定义的数字格式,以确保获得所需的外观。
注意
如果 Calendar 属性设置为公历,且格式指定日期格式,则提供的表达式必须是公历。 如果 Visual Basic Calendar 属性设置为伊斯兰教,则提供的表达式必须是伊斯兰教。
如果日历是公历,则 格式 表达式符号的含义保持不变。 如果日历是伊斯兰教,则所有日期格式符号 (例如 dddd、mmmm、yyyy) 都具有相同的含义,但适用于伊斯兰教日历。 格式符号保留为英文;生成文本的符号显示 (例如,AM 和 PM) 显示与该符号关联 (英语或阿拉伯语) 字符串。 当日历是回历时,某些符号的范围会发生变化。
| 符号 | Range |
|---|---|
| d | 1-30 |
| dd | 1-30 |
| ww | 1-51 |
| mmm | 显示完整的月份名称 (回历月份名称没有缩写) 。 |
| y | 1-355 |
| yyyy | 100-9666 |
示例
在表达式中使用 Format 函数 只要能使用表达式,就可以使用 “格式” 。 例如,可以在查询中将其用作字段别名的一部分,或在窗体或报表上文本框的 控件来源 属性中使用。 下面的示例显示了一个表达式,您可以在报表的 Filter 属性中使用该表达式,以将输出限制为上周的记录。
Format ([Date],“ww”) =立即 ( () ,“ww”) -1
在此示例中,报表的记录源具有名为“日期”的字段,该字段包含修改每个特定记录的日期,以及用于报表的日期。 运行报表时,将筛选报表的结果,以仅显示“日期”字段中值的周 (格式 ([Date],“ww”) ) 等于上一周 ( (立即格式 () ,“ww”) -1) 的记录。
在 VBA 代码中使用 Format 函数
注意
下面的示例演示了在Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个术语。
此示例演示 Format 函数的各种用法,以便通过使用命名格式和用户定义格式来设置值的格式。 对于日期分隔符 (/) 、时间分隔符 (:) 和 AM/PM 文字,系统显示的实际格式化输出取决于运行代码的计算机的区域设置。 在开发环境中显示时间和日期时,将使用代码区域设置的短时间格式和短日期格式。 通过运行代码显示时,将使用系统区域设置的短时间格式和短日期格式,这可能与代码区域设置不同。 本示例假定使用美国英语区域设置。
MyTime 并在 MyDate 开发环境中使用当前系统短时间设置和短日期设置显示。
Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' Returns current system time in the system-defined long time format.
MyStr = Format(Time, "Long Time")
' Returns current system date in the system-defined long date format.
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s") ' Returns "17:4:23".
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' Returns "05:04:23 PM".
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' Returns "Wednesday,
' Jan 27 1993".
' If format is not supplied, a string is returned.
MyStr = Format(23) ' Returns "23".
' User-defined formats.
MyStr = Format(5459.4, "##,##0.00") ' Returns "5,459.40".
MyStr = Format(334.9, "###0.00") ' Returns "334.90".
MyStr = Format(5, "0.00%") ' Returns "500.00%".
MyStr = Format("HELLO", "<") ' Returns "hello".
MyStr = Format("This is it", ">") ' Returns "THIS IS IT".
将格式用于零长度字符串
在 Microsoft Access 2.0 及更早版本中,可以使用 Format 函数为零长度字符串返回一个值,为某个值返回另一个值。 例如,可将如下所示的格式表达式与 Format 函数配合使用,以从代码返回相应的字符串值:
Dim varX As Variant
Dim varStrX As Variant
' Assign some value to varStrX and pass to Format function.
varX = Format(varStrX, "@;ZLS;Null")
在 Microsoft Access 版本 97 及更高版本中,必须单独测试 Null 情况,然后根据结果返回相应的值。 例如,在表达式中可以将 IIf 函数与 Format 函数结合使用,如下所示:
varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))
仅当您使用 Format 函数设置字符串的格式时才适用此更改,具体取决于字符串是零长度字符串还是 Null 值。 与 Format 函数一起使用的其他格式表达式继续像在以前的版本中一样工作。
如果要将数据库从 Microsoft Access 2.0 及更早版本转换为 Microsoft Access 2002 或更高版本,则必须更改代码以单独测试 Null 情况。