如何在ms access中使用vba在数据库表中插入日期,包括日期之间的日期?

问题描述:

使用MS Access对我来说是相当新的。我正在制作一张假期申请表格,用户在该表格中输入假期日期,然后填入表格的数据应该是离开日期,然后是到期日期和最新日期。例如,离开日期从7月11日到7月16日。上表中的数据应该是这样的: LEAVE_DATE 2016年7月11日 2016年7月12日 2016年7月13日 2016年7月14日 2016年7月15日 2016年7月16日如何在ms access中使用vba在数据库表中插入日期,包括日期之间的日期?

我已看过这篇文章How to insert values into the database table using VBA in MS access 但我不知道如何做日期的循环。

这里是我的代码以供参考。请帮助我。谢谢!

Private Sub btnSubmit_Click() 

Dim FromDate As Date 
Dim DateDiff As Integer 
Dim strSQL As String 

If Len(Nz(Trim(Me.txtLeaveFrom), "")) = 0 Then 
    Call MessageBox("Please enter Leave Date From.", ExclamationIcon, OKOnly) 
    Me.txtLeaveFrom.SetFocus 

ElseIf Len(Nz(Trim(Me.txtLeaveTo), "")) = 0 Then 
    Call MessageBox("Please enter Leave Date To.", ExclamationIcon, OKOnly) 
    Me.txtLeaveTo.SetFocus 

ElseIf Len(Nz(Trim(Me.cmbLeaveType), "")) = 0 Then 
    Call MessageBox("Please select Type of Leave", ExclamationIcon, OKOnly) 
    Me.cmbLeaveType.SetFocus 

Else 
    FromDate = Me.txtLeaveFrom 

    strSQL = "INSERT INTO LEAVE_RECORD (EMP_ID, LEAVE_DATE, LEAVE_TYPE, APPROVED_FLG, REMARKS)" & _ 
        "VALUES (EMPLOYEE_ID, '" & FromDate & "', '" & Me.cmbLeaveType & "' , 0, me.txtReason)" 


    Call MessageBox("Leave Application Submitted. Please wait for approval from management.", InformationIcon, OKOnly) 
End If 

End Sub 

要遍历的约会,你可以使用DateAdd功能与do loop.

我想我明白你说的话一起,所以尝试下面这段代码,看看是否是你试图做。

 FromDate = Me.txtLeaveFrom 

    Do Until FromDate = Me.txtLeaveTo 

     ' your code 
     strSQL = "INSERT INTO LEAVE_RECORD (EMP_ID, LEAVE_DATE, LEAVE_TYPE, APPROVED_FLG, REMARKS)" & _ 
        "VALUES (EMPLOYEE_ID, '" & FromDate & "', '" & Me.cmbLeaveType & "' , 0, me.txtReason)" 

     FromDate = DateAdd("d", 1, FromDate) 
     Debug.Print FromDate 

    Loop 

我把Debug.Print在那里为你检查日期递增。您必须对代码进行任何调整才能在每个相应日期输入您想要的数据。

+0

您将需要一次使用'INSERT'来记录一​​条记录。所以你应该在循环中有'DoCmd.RunSQL strSQL'。但是,我不知道这是否会给你带来任何问题,你必须运行它才能看到。 – KyloRen