如何在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
在那里为你检查日期递增。您必须对代码进行任何调整才能在每个相应日期输入您想要的数据。
您将需要一次使用'INSERT'来记录一条记录。所以你应该在循环中有'DoCmd.RunSQL strSQL'。但是,我不知道这是否会给你带来任何问题,你必须运行它才能看到。 – KyloRen