Ms access VBA中日期之间的总和
这里的代码在Ms access VBA中日期之间的总和,ms-access,vba,Ms Access,Vba,这里的代码在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
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
,将得到变量fine=100
的值,使用DateDiff
函数
DateDiff("d", date1 , date2)
使用
DateDiff
函数
DateDiff("d", date1 , date2)
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值的日期组件:
?日期差异(“d”、#2019-02-08 07:00、#2019-02-10 09:30)
2.
?日期值(#2019-02-10 09:30#)-日期值(#2019-02-08 07:00#)
2.
考虑到这一点,您可以考虑将您的子更改为以下几行(假设这是在您的表单模块中定义的,其中变量<代码> Text 1/代码> &代码> Text 2< /代码>在范围内):
Sub-tgl()
暗淡的细如长
精细=(日期值(Text1)-日期值(Text2))*50
端接头
如果您的
Text1
和Text2
值是字符串,而不是日期值,这也可以解释。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值的日期组件:
?日期差异(“d”、#2019-02-08 07:00、#2019-02-10 09:30)
2.
?日期值(#2019-02-10 09:30#)-日期值(#2019-02-08 07:00#)
2.
考虑到这一点,您可以考虑将您的子更改为以下几行(假设这是在您的表单模块中定义的,其中变量<代码> Text 1/代码> &代码> Text 2< /代码>在范围内):
Sub-tgl()
暗淡的细如长
精细=(日期值(Text1)-日期值(Text2))*50
端接头
如果您的
Text1
和Text2
值是字符串,而不是日期值,则这也将说明问题。您收到的“特定”错误消息是什么?我可以看到这里出现了一些不同的问题date1=Text1
可能会失败(或者实际上只是返回“”),因为它没有引用工作表aka应该是date1=FormNameHere.Text1BoxNameHere.Value
。如果您提前调暗变量以确保它们不会被错误转换,这也很有帮助Dim date 1 as date
等。之后,如果两者都是实际日期,则可以减去它们,并按预期得到2
。没有错误消息,只是当我每行执行一个时,我没有从totaldate
中得到任何值,但是在date1
和date2
中都有值,但是当我减去这些值时,totaldate
值变为空,您收到的“特定”错误消息是什么?我可以看到这里出现了一些不同的问题date1=Text1
可能会失败(或者实际上只是返回“”),因为它没有引用工作表aka应该是date1=FormNameHere.Text1BoxNameHere.Value
。如果您提前调暗变量以确保它们不会被错误转换,这也很有帮助Dim date 1 as date
等。之后,如果两者都是实际日期,则可以减去它们,并按预期得到2
。没有错误消息,只是当我每行执行一个时,我没有从totaldate
中得到任何值,但是在date1
和date2
中都有值,但是当我减去这些值时,totaldate
值变为空。谢谢,我只是把一些变量设为Date,然后它最终可以求和。谢谢,我只是把一些变量设为Date,然后它最终可以求和