2016-07-11 2 views
-1

MS Access ist für mich ziemlich neu. Ich mache ein Urlaubsantragsformular, wo der Benutzer das Urlaubsdatum eingibt und bis dann die Daten, die in die Tabelle eingefügt werden, das Urlaubsdatum von, dann das Datum zwischen von und bis und aktuell sein sollen. Zum Beispiel, verlassen Sie das Datum vom 11. Juli bis zum 16. Juli. Die Daten auf dem Tisch sollte wie folgt sein: LEAVE_DATE 7/11/2016 7/12/2016 7/13/2016 7/14/2016 7/15/2016 7/16/2016Wie fügt man Datum in und zwischen Datum in Datenbanktabelle mit vba in ms ein?

Ich habe diesen Beitrag How to insert values into the database table using VBA in MS access angeschaut, aber ich weiß nicht, wie man die Schleife für die Daten macht.

Hier ist mein Code als Referenz. Bitte hilf mir dabei. Danke!

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 

Antwort

0

Um Schleife durch Daten können Sie die DateAdd Funktion zusammen mit einem do loop.

Ich glaube, ich verstehe, was Sie sagen, so versuchen unter diesen Code zu sehen, ob das ist, was Sie vorhatten .

 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 

Ich habe eine Debug.Print für Sie, dass die Daten Erhöhen sind zu überprüfen. Sie müssen Änderungen am Code vornehmen, um die Daten, die Sie alleine haben möchten, mit jedem entsprechenden Datum einzugeben.

+0

Sie müssen 'INSERT' für jeweils einen Datensatz verwenden. Sie sollten also 'DoCmd.RunSQL strSQL' in der Schleife haben. Aber ich weiß nicht, ob das irgendwelche Probleme verursachen wird, Sie müssen es laufen lassen und sehen. – KyloRen

Verwandte Themen