返回一个Variant (String)值,其中包含根据格式表达式中包含的说明设置格式的 表达式 。
警告 使用此函数时出现问题。 某些日历年中的最后一个星期一可以作为第1周的第一周返回到53。 有关详细信息和解决方法,请参阅格式或 DatePart 函数可能返回第一年的星期一的错误周数。 |
语法
Format ( expression [,Format ] [, firstdayofweek ] [, firstweekofyear ] )
Format函数语法具有以下参数:
参数 | 说明 |
---|---|
expression |
必需。 任何有效的表达式。 |
格式 |
可选。 有效的命名或用户定义的格式表达式。 |
firstdayofweek |
可选。 指定一周的第一天的 常量 。 |
firstweekofyear |
可选。 一个常量,指定一年的第一周。 |
设置
Format参数可以使用各种设置,具体取决于表达式参数的数据类型。 有关有效的格式表达式的详细信息,请参阅下表中列出的文章。
对于使用此数据类型的表达式 .。。 | 请参阅文章 |
---|---|
任何类型 |
|
日期/时间 |
|
数字 |
|
文本和备注 |
|
是/否 |
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 |
从一年的第一个完整周开始。 |
备注
进行格式设置 | 执行此操作 |
---|---|
数字 |
使用预定义的命名数字格式或创建用户定义的数字格式。 |
日期和时间 |
使用预定义的命名日期/时间格式或创建用户定义的日期/时间格式。 |
日期和时间序列号 |
使用日期和时间格式或数字格式。 |
Strings |
创建你自己的用户定义的字符串格式。 |
如果你尝试在不指定格式的情况下设置数字格式,则format将提供类似于Str函数的功能,尽管它是跨国感知的。 但是,使用格式设置为字符串的正数将不包含为值的符号保留的前导空格;使用Str转换的将保留先导空间。
如果要设置非本地化数字字符串的格式,则应使用用户定义的数字格式以确保获得所需的外观。
注意: 如果Calendar属性设置为公历,并且格式指定日期格式,则提供的表达式必须为公历。 如果 "Visual Basic日历" 属性设置为 "回历",则提供的表达式必须为回历。
如果日历为公历,则格式表达式符号的含义不会更改。 如果日历是回历,则所有日期格式符号(如 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 ([日期],"ww") = Format (Now (),"ww")-1
在此示例中,报表的记录源包含一个名为 "Date" 的字段,其中包含每个特定记录的修改日期,以及在报表上使用的日期。 当运行报表时,其结果将筛选为仅显示 "日期" 字段中值的星期("格式" ("日期","ww"))等于前一周(Format (Now (),"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大小写进行单独测试,然后根据结果返回适当的值。 例如,可以在具有Format函数的表达式中使用IIf函数,如下所示:
varX = IIf(IsNull(varStrX),"Null", Format(varStrX, "@;ZLS"))
仅当使用format函数设置字符串的格式时,此更改才适用,具体取决于它是零长度字符串还是 Null 值。 与format函数一起使用的其他格式表达式的工作方式与以前版本中的相同。
如果将数据库从 Microsoft Access 版本2.0 和更早版本转换为 Microsoft Access 2002 或更高版本,则必须更改代码以单独针对 Null 大小写进行测试。