此处的代码不适用于totaldate
中的进程,因为我检查它没有从date1
和date2
中减去,但是它们已经得到了诸如
Text1 = 2/10/2019
Text2 = 2/8/2019
我正在尝试从两个文本框Text1
和Text2
中减去两个日期,我已经确保它们的格式是短日期。
我确实做到了totaldate = Text1 - Text2
,但它也不起作用
Sub tgl()
date1 = Text1
date2 = Text2
totaldate = date1 - date2
fine = totaldate * 50
End Sub
在此输出中,将所有日期加起来后,将减去Text1
和Text2
,然后再乘以50
,将剩下2天。变量fine = 100
的值
答案 0 :(得分:0)
使用DateDiff
功能
DateDiff("d", date1 , date2)
答案 1 :(得分:0)
MS Access中的日期存储为自1899年12月30日午夜以来经过的天数,时间部分用十进制格式表示为一天的一小部分,例如:
?cdate(1.5)
31/12/1899 12:00:00
如果您的日期值没有时间成分,那么简单地将两个日期值相减就可以得出分隔两个日期的天数:
?#2019-02-10#-#2019-02-08#
2
但是,如果您的datetime值也有一个时间分量,则对两个值进行基本减法将产生一个双倍而不是整数值:
?#2019-02-10 09:30#-#2019-02-08 07:00#
2.10416666667152
因此,您将需要使用DateDiff
函数,指定间隔days
,或使用DateValue
函数返回datetime值的日期部分:< / p>
?DateDiff("d",#2019-02-08 07:00#,#2019-02-10 09:30#)
2
?DateValue(#2019-02-10 09:30#)-DateValue(#2019-02-08 07:00#)
2
考虑到这一点,您可以考虑按照以下方式将Sub更改为某些内容(假设这是在您的表单模块中定义的,其中变量Text1
和Text2
在范围内) :
Sub tgl()
Dim fine As Long
fine = (DateValue(Text1) - DateValue(Text2)) * 50
End Sub
这还将说明您的Text1
和Text2
值是字符串而不是日期值。