2016-07-11 89 views
-1

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

回答

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在那裏爲你檢查日期遞增。您必須對代碼進行任何調整才能在每個相應日期輸入您想要的數據。

+0

您將需要一次使用'INSERT'來記錄一​​條記錄。所以你應該在循環中有'DoCmd.RunSQL strSQL'。但是,我不知道這是否會給你帶來任何問題,你必須運行它才能看到。 – KyloRen

相關問題