1、Access 函数大全资料日期/时间CDate 将字符串转化成为日期 select CDate(“2005/4/5“)Date 返回当前日期DateAdd 将指定日期加上某个日期 select dateAdd(“d“,30,Date()将当前日期加上30 天, 其中 d 可以换为 yyyy 或 H 等DateDiff 判断两个日期之间的间隔 select DateDiff(“d“,“2006-5-1“,“2006-6-1“)返回 31,其中 d 可以换为 yyyy,m,H 等DatePart 返回日期的某个部分 select DatePart(“d“,“2006-5-1“)返回 1,即 1 号
2、,d也可以换为 yyyy(年)或 q(季) ,m (月) ,d(日) ,w(工作日) ,ww(周) ,h(时) ,n(分) ,s(秒)Day 返回日期的 d 部分,等同于 datepart 的 d 部分Dateserial(年,月,日) 组合年月日构造日期Hour 返回日期的小时IsDate 判断是否是日期,是日期返回-1,不是日期返回 0Minute 返回日期的分钟部分Month 返回日期的月份部分Now 返回当前时间(完整时间,包括年月日 小时分秒)Second 返回日期的秒部分Time 返回当前的时间部分(即除去年 /月/ 日的部分)Weekday 返回某个日期的当前星期(星期天为 1,
3、星期一为 2,星期二为 3.),例如select weekday(now();Year 返回某个日期的年份检查IsEmpty 检测是否为空IsNull 检测是否为 Null 值,null 值返回 0,非 null 值返回-1IsNumeric 检测是否为数字,是数字返回-1,否则返回 0算术Abs 绝对值Tan 正切值。Sin 正弦值Cos 余弦值Exp 返回 e 的给定次幂。Log 返回以 E 为底的对数值Fix 返回数字的整数部分(即小数部分完全截掉 )Int 将数字向下取整到最接近的整数。Rnd 返回一个 0 到 1 之间的随机数值Sgn 返回数字的正负符号(正数返回 1,负数返回-1,
4、0 值返回 0)Sqr 返回平方根值Round ()按指定的小数位数进行四舍五入运算的结果。,保留的小数位数程序流程Choose (,) 根据第一参数,返回后面字符串组的值,Select Choose(1,“a“,“b“,“c“)返回 a,将 1 改成 2 后,返回 b,改成 3 后,返回 c(第一个参数也可以是某个字段)IIF 根据表达式返回特定的值 Select IIF(“31“,“OK“,“False“),返回 OKSwitch(,) 计算每个条件表达式,并返回列表中第一个条件表达式为 true 时与其关联的表达式的值。Sql合计(聚合)函数Avg 取字段平均值Count 统计记录条数M
5、ax 取字段最大值Min 取字段最小值StDev 估算样本的标准差(忽略样本中的逻辑值和文本) 。StDevP 计算以参数形式(忽略逻辑值和文本)给出的整个样本总体的标准偏差。Sum 计算字段的总合Var 估算样本方差(忽略样本中的逻辑值和文本) 。VarP 计算整个样本总体的方差(忽略样本总体中的逻辑值和文本) 。文本Format 格式化字符串,Select Format(now(),yyyy-mm-dd)返回类似于“2005-04-03“ ,Select Format(3/9,“0.00“)返回 0.33InStr 查询子串在字符串中的位置 select Instr(“abc“,“a“)返
6、回 1,select Instr(“abc“,“f“)返回 0 LCase 返回字符串的小写形式 UCase 将字符串转大写Left 左截取字符串Right 右截取字符串Mid 取得子字符串 select mid(“123“,1,2) as midDemo 返回 12Len 返回字符串长度LTrim 左截取空格RTrim 右截取空格Trim 截取字符串两头的空格Space 产生空格 select Space(4)返回 4 个空格String(,) 返回一个由字符表达式的第一个字符重复组成的指定长度为数值表达式值的字符串StrComp 比较两个字符串是否内容一致( 不区分大小写)select S
7、trComp(“abc“,“ABC“)返回 0,select StrComp(“abc“,“123“)返回-1消息函数Inputbox(提示,标题 ,默认) 在对话框中显示提示信息,等待用户输入正文并按下按钮;并返回文本框中输入的内容(string 型)Msgbox(提示,按钮、图标和默认按钮,标题) 在对话框中显示消息,等待用户单击按钮,并返回一个integer 型数值,告诉用户单击的是哪一个按钮。转换函数Asc 返回字母的 ASCII 值,select Asc(“A“) 返回 65Chr 将 ASCII 值转换到字符 select chr(65)返回“A“Nz(,规定值)如果表达式为 nu
8、ll,返回 0;对零长度的空串可以自定义一个返回值(规定值)Str 将数值表达式转换成字符串Val 将数值字符串转换成数值型数字Abs 函数返回参数的绝对值,其类型和参数相同。语法Abs(number) 必要的 number 参数是任何有效的数值表达式,如果 number 包含 Null,则返回 Null,如果 number 是未初始化的变量,则返回 0。说明一个数的绝对值是将正负号去掉以后的值。例如,ABS(-1) 和 ABS(1) 都返回 1。Array 函数返回一个包含数组的 Variant。语法Array(arglist) 所需的 arglist 参数是一个用逗号隔开的值表,这些值用于
9、给 Variant 所包含的数组的各元素赋值。如果不提供参数,则创建一个长度为 0 的数组。说明用来表示数组元素的符号由变量名、圆括号以及括号中的所需元素的索引号组成。在下面的示例中,第一条语句创建一个 Variant 的变量 A。第二条语句将一个数组赋给变量 A。最后一条语句将该数组的第二个元素的值赋给另一个变量。Dim A As VariantA = Array(10,20,30)B = A(2)使用 Array 函数创建的数组的下界受 Option Base 语句指定的下界的决定, 除非 Array 是由类型库(例如 VBA.Array )名称限定。如果是由类型库名称限定,则 Array
10、 不受 Option Base 的影响。注意 没有作为数组声明的 Variant 也可以表示数组。除了长度固定的字符串以及用户定义类型之外,Variant 变量可以表示任何类型的数组。尽管一个包含数组的 Variant 和一个元素为 Variant 类型的数组在概念上有所不同,但对数组元素的访问方式是相同的。Asc 函数返回一个 Integer,代表字符串中首字母的字符代码。语法Asc(string) 必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。说明在非 DBCS 系统下,返回值范围为 0 255 。在 DBCS 系统下,
11、则为 -32768 32767。注意 AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。Atn 函数返回一个 Double,指定一个数的反正切值。语法Atn(number) 必要的 number 参数是一个 Double 或任何有效的数值表达式。说明Atn 函数的参数值 ( number) 为直角三角形两边的比值并返回以弧度为单位的角。这个比值是角的对边长度除以角的邻边长度之商。值的范围在 -pi/2 和 pi/2 弧度之间。为了将角度转换
12、为弧度,请将角度乘以 pi/180。为了将弧度转换为角度,请将弧度乘以 180/pi。注意 Atn 是 Tan 的反三角函数,Tan 的参数值为角度,返回直角三角形的两条边的比值。不要将 Atn 和余切函数混淆,余切函数值是正切函数值的倒数,cotangent = (1/tangent)。CallByName 函数执行一个对象的方法,或者设置或返回一个对象的属性。语法CallByName(object, procname, calltype,args() CallByName 函数的语法有以下命名参数:部分 描述object 必需的;变体型(对象)。函数将要执行的对象的名称。procname
13、必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。calltype 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。args() 可选的:变体型(数组)。说明CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:CallByName Text1, “MousePointer“, vbLet, vbCro
14、sshairResult = CallByName (Text1, “MousePointer“, vbGet)CallByName Text1, “Move“, vbMethod, 100, 100类型转换函数每个函数都可以强制将一个表达式转换成某种特定数据类型。语法CBool(expression) CByte(expression) CCur(expression) CDate(expression) CDbl(expression) CDec(expression) CInt(expression) CLng(expression) CSng(expression) CStr(expr
15、ession) CVar(expression)CStr(expression) 必要的 expression 参数可以是任何字符串表达式或数值表达式。返回类型函数名称决定返回类型,如下所示:函数 返回类型 expression 参数范围CBool Boolean 任何有效的字符串或数值表达式。CByte Byte 0 至 255。CCur Currency -922,337,203,685,477.5808 至 922,337,203,685,477.5807。CDate Date 任何有效的日期表达式。CDbl Double 负数从 -1.79769313486231E308 至 -4.9
16、4065645841247E-324;正数从 4.94065645841247E-324 至 1.79769313486232E308。CDec Decimal 零变比数值,即无小数位数值,为+/-79,228,162,514,264,337,593,543,950,335。对于 28 位小数的数值,范围则为+/-7.9228162514264337593543950335;最小的可能非零值是 0.0000000000000000000000000001。CInt Integer -32,768 至 32,767,小数部分四舍五入。CLng Long -2,147,483,648 至 2,14
17、7,483,647,小数部分四舍五入。CSng Single 负数为 -3.402823E38 至 -1.401298E-45;正数为 1.401298E-45 至 3.402823E38。CStr String 依据 expression 参数返回 Cstr。CVar Variant 若为数值,则范围与 Double 相同;若不为数值,则范围与 String 相同。说明 如果传递给函数的 expression 超过转换目标数据类型的范围,将发生错误。通常,在编码时可以使用数据类型转换函数,来体现某些操作的结果应该表示为特定的数据类型,而不是缺省的数据类型。例如,当单精度、双精度或整数运算发生
18、的情况下,使用 CCur 来强制执行货币运算。应该使用数据类型转换函数来代替 Val,以使国际版的数据转换可以从一种数据类型转换为另一种。例如,当使用 Ccur 时,不同的小数点分隔符、千分位分隔符和各种货币选项,依据系统的区域设置都会被妥善识别。当小数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函数,Fix 和 Int 函数会将小数部分截断而不是四舍五入。并且 Fix 和 Int 函数总是返回与传入的数据类型相同的值。使用 IsDate 函数,可判断 dat
19、e 是否可以被转换为日期或时间。Cdate 可用来识别日期文字和时间文字,以及落入可接受的日期范围内的数值。当转换一个数字成为日期时,是将整数部分转换为日期,小数部分转换为从午夜起算的时间。CDate 依据系统上的区域设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现
20、在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。Choose 函数从参数列表中选择并返回一个值。语法Choose(index, choice-1, choice-2, . , choice-n) Choose 函数的语法具有以下几个部分:部分 描述index 必要参数,数值表达式或字段,它的运算结果是一个
21、数值,且界于 1 和可选择的项目数之间。choice 必要参数,Variant 表达式,包含可选择项目的其中之一。说明Choose 会根据 index 的值来返回选择项列表中的某个值。如果 index 是 1,则 Choose 会返回列表中的第 1 个选择项。如果 index 是 2,则会返回列表中的第 2 个选择项,以此类推。可以使用 Choose 来查阅一个列表中的项目。例如,如果 index 所指定的值为 3,而 choice-1 = “one“、 choice-2 = “two“、且 choice-3 = “three“,那么 Choose 将返回 “three“。当 index 代表
22、一选项组中的值时,则这项功能将会特别有用。即使它只返回一个选项值,Choose 仍然会计算列表中的每个选择项。所以应该注意到这项副作用。例如,当在每个选择项表达式中使用了 MsgBox 函数作为其中的一部分时,每计算一个选择项,就会显示一次消息框。当 index 小于 1 或大于列出的选择项数目时,Choose 函数返回 Null。如果 index 不是整数,则会先四舍五入为与其最接近的整数。Chr 函数返回 String,其中包含有与指定的字符代码相关的字符 。语法Chr(charcode) 必要的 charcode 参数是一个用来识别某字符的 Long。说明0 到 31 之间的数字与标准的
23、非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。 charcode 的正常范围为 0 255。然而,在 DBCS 系统, charcode 的实际范围为 -32768 到 65535。注意 ChrB 函数作用于包含在 String 中的字节数据。ChrB 总是返回一个单字节,而不是返回一个字符,一个字符可能是一个或两个字节。ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同。注意 Visual Basic for the Macintosh 不支持 Unicode 字符串。因此,当 n 值在 128
24、 65,535 范围内时, ChrW( n) 不能像在 Windows 环境中那样返回所有的 Unicode 字符。相反地,当 Unicode 的 n 值大于 127 时,ChrW( n) 会试图做一个“最好的猜测”。因此,在 Macintosh 环境中,不能使用 ChrW 。Command 函数返回命令行的参数部分,该命令行用于装入 Microsoft Visual Basic 或 Visual Basic 开发的可执行程序。Visual Basic Command 函数在 Microsoft Office 应用程序中不可用。语法Command 说明当从命令行装入 Visual Basic
25、时,/cmd 之后的命令行的任何部分作为命令行的参数传递给程序。下面的示例中,cmdlineargs 代表 Command 函数返回的参数信息。VB /cmd cmdlineargs对于使用 Visual Basic 开发并编译为 .exe 文件的应用程序,Command 返回出现在命令行中应用程序名之后的任何参数。例如:MyApp cmdlineargs想知道如何在正在使用的应用程序的用户界面中改变命令行参数,请搜寻关于“命令行参数”的帮助。Cos 函数返回一个 Double,指定一个角的余弦值。语法Cos(number) 必要的 number 参数是一 Double 或任何有效的数值表达式
26、,表示一个以弧度为单位的角。说明Cos 函数的参数为一个角,并返回直角三角形两边的比值。该比值为角的邻边长度除以斜边长度之商。结果的取值范围在 -1 到 1 之间。为了将角度转换成弧度,请将角度乘以 pi/180。为了将弧度转换成角度,请将弧度乘以 180/pi。CreateObject 函数创建并返回一个对 ActiveX 对象的引用。语法CreateObject(class,servername) CreateObject 函数的语法有如下部分:部分 描述class 必需的; Variant (String). 要创建的应用程序名称和类。servername 可选的; Variant (S
27、tring). 要在其上创建对象的网络服务器名称。如果 servername 是一个空字符串(“),即使用本地机器。class 参数使用 appname.objecttype 这种语法,包括以下部分: 部分 描述appname 必需的;Variant(字符串)。提供该对象的应用程序名。objecttype 必需的;Variant(字符串)。待创建对象的类型或类。说明每个支持自动化的应用程序都至少提供一种对象类型。例如,一个字处理应用程序可能会提供 Application 对象,Document 对象,以及 Toolbar 对象。要创建 ActiveX 对象,只需将 CreateObject 返
28、回的对象赋给一个对象变量:声明一个对象变量来存放该对象的引用。Dim as Object 采用后期绑定方式。Dim ExcelSheet As ObjectSet ExcelSheet = CreateObject(“Excel.Sheet“)上述代码将启动该应用程序创建该对象,在本例中就是创建一个 Microsoft Excel 电子数据表。对象创建后,就可以在代码中使用自定义的对象变量来引用该对象。在下面的示例中,可以使用对象变量 ExcelSheet 来访问新建对象的属性和方法,以及访问 Microsoft Excel 的其它对象,包括应用程序对象和单元格集合。设置 Applicatio
29、n 对象使 Excel 可见ExcelSheet.Application.Visible = True在表格的第一个单元中写些文本ExcelSheet.Application.Cells(1, 1).Value = “This is column A, row 1“将该表格保存到 C:test.xls 目录ExcelSheet.SaveAs “C:TEST.XLS“使用应用程序对象的 Quit 方法关闭 Excel。ExcelSheet.Application.Quit释放该对象变量Set ExcelSheet = Nothing使用 As Object 子句声明对象变量,可以创建一个能包含任
30、何类型对象引用的变量。不过,该变量访问对象是后期绑定的,也就是说,绑定在程序运行时才进行。要创建一个使用前期绑定方式的对象变量,也就是说,在程序编译时就完成绑定,则对象变量在声明时应指定类 ID。例如,可以声明并创建下列 Microsoft Excel 引用:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.WorkSheetSet xlApp = CreateObject(“Excel.Application“)Set xlBook = xlApp.Workbooks.AddSet x
31、lSheet = xlBook.Worksheets(1)前期绑定的变量引用可以提供更好的性能,但该变量只能存放声明中所指定的类的引用。可以将 CreateObject 函数返回的对象传给一个参数为对象的函数。例如,下面的代码创建并传递了一个 Excel.Application 对象的引用:Call MySub (CreateObject(“Excel.Application“)可以在一个远端连网的计算机上创建一个对象,方法是把计算机的名称传递给 CreateObject 的 servername 参数。这个名称与共享名称的机器名部份相同:对于一个共享名称为“MyServerPublic,“
32、的 servername 参数是 “MyServer“ 。注意 关于使应用程序在远程网络计算机上可见的详细信息,请参阅 COM 文档 (参阅 Microsoft Developer Network)。您可能必须给应用程序添加注册号。下面的代码返回在一个名为 MyServer 的远端计算机上运行的 Excel 实例的版本号:Dim xlApp As ObjectSet xlApp = CreateObject(“Excel.Application“, “MyServer“)Debug.Print xlApp.Version如果远端服务器不存在或者不可用,则会发生一个运行时错误。注意 当该对象当前
33、没有实例时,应使用 CreateObject。如果该对象已有实例在运行,就会启动一个新的实例,并创建一个指定类型的对象。要使用当前实例,或要启动该应用程序并加载一个文件,可以使用 GetObject 函数。如果对象已登记为单个实例对象,则不管执行多少次 CreateObject,都只能创建该对象的一个实例。CurDir 函数返回一个 Variant (String),用来代表当前的路径。语法CurDir(drive)可选的 drive 参数是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器,或 drive 是零长度字符串 (“),则 CurDir 会返回当前驱动器的路径。 在 Ma
34、cintosh 上,CurDir 忽略任何指定的 drive ,并只简单地返回当前驱动器的路径。CVErr 函数返回 Error 子类型的 Variant,其中包含指定的错误号。语法CVErr(errornumber) 必要的 errornumber 参数可以是任何有效的错误号代码。说明可以在过程中,使用 CVErr 函数来创建用户自定义错误。例如,如果创建一个函数,它可以接受若干个参数,且正常返回一个字符串,则可以让函数来判断输入的参数,确认它们是在可接受的范围内。如果不是的话,此函数将不会返回所要的字符串。在这种情况下,CVErr 可以返回一个错误号,并告知应该采取的行动。注意,Error
35、 的隐式转换是不允许的,例如,不能直接把 CVErr 的返回值赋值给一个非 Variant 的变量。然而,可以对 CVErr 的返回值进行显式转换(使用 CInt、CDbl 等等),并赋值给适当的数据类型变量。Date 函数返回包含系统日期的 Variant (Date)。语法Date说明为了设置系统日期,请使用 Date 语句。DateAdd 函数返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。语法DateAdd(interval, number, date) DateAdd 函数语法中有下列命名参数:部分 描述interval 必要。字符串表达式,是所要加上
36、去的时间间隔。number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。设置 interval 参数具有以下设定值:设置 描述yyyy 年q 季m 月y 一年的日数d 日w 一周的日数ww 周h 时n 分钟s 秒说明可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日
37、” (”d”) 或“一周的日数” (”w”)。DateAdd 函数将不返回有效日期。在以下实例中将 1 月 31 日加上一个月:DateAdd(m, 1, 31-Jan-95)上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。注意 DateAdd 返回值的格式
38、由 Control Panel 设置决定,而不是由传递到 date 参数的格式决定。DateDiff 函数返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。语法DateDiff(interval, date1, date2, firstdayofweek, firstweekofyear) DateDiff 函数语法中有下列命名参数:部分 描述interval 必要。字符串表达式,表示用来计算 date1 和 date2 的时间差的时间间隔Date1date2 必要;Variant (Date)。计算中要用到的两个日期。Firstdayofweek 可选。指定一个星期
39、的第一天的常数。如果未予指定,则以星期日为第一天。firstweekofyear 可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。设置interval 参数的设定值如下:设置 描述yyyy 年q 季m 月y 一年的日数d 日w 一周的日数ww 周h 时n 分钟s 秒firstdayofweek 参数的设定值如下:常数 值 描述vbUseSystem 0 使用 NLS API 设置。vbSunday 1 星期日(缺省值)vbMonday 2 星期一vbTuesday 3 星期二vbWednesday 4 星期三vbThursday 5 星期四vbFriday
40、6 星期五vbSaturday 7 星期六常数 值 描述vbUseSystem 0 用 NLS API 设置。vbFirstJan1 1 从包含 1 月 1 日的星期开始(缺省值)。vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。vbFirstFullWeek 3 从第一个无跨年度的星期开始。说明DateDiff 函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用 DateDiff 来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。为了计算 date1 与 date2 相差的日数,可以使用“一年的日数”(y) 或“日”(d)。当 inte
41、rval 是“一周的日数”(w) 时,DateDiff 返回两日期间的周数。如果 date1 是星期一,DateDiff 计算到 date2 为止的星期一的个数。这个数包含 date2 但不包含 date1。不过,如果 interval 是“周”(ww),则 DateDiff 函数返回两日期间的“日历周”数。由计算 date1 与 date2 之间星期日的个数而得。如果 date2 刚好是星期日,则 date2 也会被加进 DateDiff 的计数结果中;但不论 date1 是否为星期日,都不将它算进去。如果 date1 比 date2 来得晚,则 DateDiff 函数的返回值为负数。fir
42、stdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。如果 date1 或 date2 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date1 或 date2 用双引号 (“ “) 括起来,且年份略而不提,则在每次计算表达式 date1 或 date2 时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。在计算 12 月 31 日和来年的 1 月 1 日的年份差时,DateDiff 返回 1 表示相差一个年份,虽然实际上只相差一天而已。DatePart 函数返回一个包含已知日期的指定时间部分的 Variant (Integer)
43、。语法DatePart(interval, date,firstdayofweek, firstweekofyear) DatePart 函数语法中有下列命名参数:部分 描述interval 必要。字符串表达式,是要返回的时间间隔。date 必要。要计算的 Variant (Date) 值。Firstdayofweek 可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。firstweekofyear 可选。指定一年第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。设置interval 参数的设定值如下:设置 描述yyyy 年q 季m 月y 一年的日数d 日w
44、 一周的日数ww 周h 时n 分钟s 秒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 日的星期开始(缺省值)。vbFirstFourDay
45、s 2 从第一个其大半个星期在新的一年的一周开始。vbFirstFullWeek 3 从第一个无跨年度的星期开始。说明DatePart 函数可以用来计算日期并返回指定的时间间隔。例如,可以使用 DatePart 计算某个日期是星期几或目前为几点钟。firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。如果 date 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date 用双引号 (“ “) 括起来,且年份略而不提,则在每次计算 date 表达式时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。DateSerial 函数返
46、回包含指定的年、月、日的 Variant (Date)。语法DateSerial(year, month, day) DateSerial 函数语法有下列的命名参数:部分 描述year 必要;Integer。从 100 到 9999 间的整数,或一数值表达式。month 必要;Integer。任何数值表达式。day 必要;Integer。任何数值表达式。说明为了指定某个日期,如 1991 年 12 月 31 日,DateSerial 函数中的每个参数的取值范围应该是可接受的;即,日的取值范围应在 1-31 之间,而月的取值范围应在 1-12 之间。但是,当一个数值表达式表示某日之前或其后的年、
47、月、日数时,也可以为每个使用这个数值表达式的参数指定相对日期。以下示例中使用了数值表达式代替绝对日期。这里,DateSerial 函数返回 1990 年 8 月 1 日的 十 年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 之前的日期;换句话说,就是 1980 年 5 月 31 日。DateSerial(1990 - 10, 8 - 2, 1 - 1)year 参数的数值若介于 0 与 29 之间,则将其解释为 20002029 年,若介于 30 和 99 之间则解释为19301999 年。而对所有其它 year 参数,则请用四位数值表示(如 1800)。当任何一
48、个参数的取值超出可接受的范围时,它会适时进位到下一个较大的时间单位。例如,如果指定了 35 天,则这个天数被解释成一个月加上多出来的日数,多出来的日数将由其年份与月份来决定。如果一个参数值超出 -32,768 到 32,767 的范围,就会导致错误发生。DateValue 函数返回一个 Variant (Date)。语法DateValue(date) 必要的 date 参数 date 通常是字符串表达式,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日之间的一个日期。但是, date 也可以是任何表达式,其所代表的日期、时间在上述范围内。说明如果 date 是一个字符串,
49、且其内容只有数字以及分隔数字的日期分隔符,则 DateValue 就会根据系统中指定的短日期格式来识别月、日、年的顺序。DateValue 也识别明确的英文月份名称,全名或缩写均可。例如,除了 12/30/1991 和 12/30/91 之外,DateValue 也识别 December 30, 1991 和 Dec 30, 1991。如果 date 中略去了年这一部分,DateValue 就会使用由计算机系统日期设置的当前年份。如果 date 参数包含时间信息,则 DateValue 不会返回它。但是,如果 date 包含无效时间信息(如 89:98),则会导致错误发生。Day 函数返回一个 Variant (Integer),其值为 1 到 31 之间的整数,表示一个月中的某一日。语法Day(date) 必要的 date 参数,可以是任何能够表示日期的 Variant、数值表达式、字符串表达式或它们的组合。如果 date 包含 Null,则返回 Null。DDB 函数返回一个 Double,指定一笔资产在一特定期间内