2016-07-11 16 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日vbaをmsアクセスで使用してデータベーステーブルの日付と日付の間に日付を挿入する方法

私はこの投稿を見てきましたHow to insert values into the database table using VBA in MS access しかし、私はどのように日付のループを行うか分からない。

ここをクリックして参考にします。これについて私を助けてください。ありがとうございました!あなたはdo loop.

とともにDateAdd機能を使用することができ、日付をループし

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

私は私はあなたが言っているのか理解だと思うので、それはあなたがやろうとしていたものであるかどうかを確認するには、以下のコードを試してみてください。

 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

一度に1つのレコードに対して「INSERT」を使用する必要があります。だから、 'DoCmd.RunSQL strSQL'をループ内に置くべきです。しかし、それはあなたに何か問題を引き起こすかどうかわからない、あなたはそれを実行し、参照する必要があります。 – KyloRen

関連する問題