access VBA编程问题 看代码有些地方不理解

SQL102 = Nz(Me.Textdate.Value)


For i = 1 To SQL104

    StrSQL1 = " INSERT INTO 出勤管理 ( 日期 ) " _
                    & " #" & SQL102 & "# AS 日期, "_
                    & " FROM 二级表 "
    DoCmd.RunSQL StrSQL1
    SQL102 = SQL102 + 1
Next

别人写的程勋 我在看代码的时候SQL102 SQL104 定义的是String
SQL102从 Textdate文本框获得日期 格式“2017/6/27”

SQL104 是从文本框获得的出勤天数

不太懂VB 真的能这么写么
尤其是日期加1 太神奇了把0.0

2个回答

Date 变量存储为 IEEE 64 位(8 个字节)浮点数值形式,其可以表示的日期范围从 100 年 1 月 1 日到 9999 年 12 月 31 日,而时间可以从 0:00:00 到 23:59:59。任何可辨认的文本日期都可以赋值给 Date 变量。日期文字须以数字符号 (#) 扩起来,例如,#January 1, 1993# 或 #1 Jan 93#。

Date 变量会根据计算机中的短日期格式来显示。时间则根据计算机的时间格式(12 或 24 小时制)来显示。

当其他的数值类型要转换为 Date 型时,小数点左边的值表示日期信息,而小数点右边的值则表示时间。午夜为 0 而中午为 0.5。负整数表示 1899 年 12 月 30 日之前的日期。

msdn上的解释,看来这样是可以的,他转换成浮点数了。

日期这样处理没见过,按理说是不行的,一般都是 DateAdd函数来加减日期,用DateDiff比较日期差值的。
文本框里读过来的string当数字用是可以的。

sinat_38913556
sinat_38913556 我也很费解 可是这样写进数据库里的数据 确实是正确的 比如说出勤2天 就会有两条数据 日期分别是 2017/6/27 和 2017/6/28
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问