DateDiff每天都在一个间隔日复一日

时间:2014-02-21 01:06:05

标签: ms-access access-vba

假设我有一个StartDate:02/02/2014 10:00和EndDate:01/30/2014 15:00是否可以在查询中包含此结果?

1 个答案:

答案 0 :(得分:0)

不确定您所拥有的日期是否在表中,但只是使用查询,不,这是不可能的。如果你有一个日期表,但是日期有差距,那么,不,不可能。

如果您愿意花时间在一些VBA代码上,那么YES,您可以生产出您想要的东西。假设您有一个输入STARTDATE和ENDDATE的表单,可以使用下面的代码创建日期表,然后将查询设置为LEFT JOIN(如果您有另一个表):

Private Sub SomeButton_Click()
Dim strSQL  As String
Dim dDate As Date

DoCmd.SetWarnings False
' NOTE!!! Either create table manually, or comment out next two lines after first time!!!
strSQL = "CREATE TABLE tempDates (tDate DateTime);"
CurrentDb.Execute strSQL

strSQL = "delete * from tempDates"
CurrentDb.Execute strSQL

dDate = #1/1/2014#                  'Forms!frmYours!txtStartDate    ' Set starting date
Do While dDate < #3/1/2014#         'Forms!frmYours!txtEndDate      ' Set Ending date
    strSQL = "INSERT INTO tempDates (tDate) SELECT '" & dDate & "' AS Expr1;"
    CurrentDb.Execute strSQL
    dDate = dDate + 1
Loop
DoCmd.SetWarnings True
End Sub