如何使用ms访问时使用vba在数据库表中的日期之间插入日期?

时间:2016-07-11 03:19:58

标签: sql-server vba date ms-access

使用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日

我看过这篇文章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

1 个答案:

答案 0 :(得分:0)

要循环显示日期,您可以使用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来检查日期是否正在递增。您必须对代码进行任何调整,以便在每个相应的日期输入您想要的数据。