Employee ID Name LastName Position A BB Job Zone LeaveType StartDate EndDate TotalLeave Description
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-16 2017-02-17 2 พักผ่อน
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-17 2017-02-17 2 พักผ่อน
แต่จากการเขียน code ผลลัพธ์ที่ได้คือ
Employee ID Name LastName Position A BB Job Zone LeaveType StartDate EndDate TotalLeave Description
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-16 2017-02-17 2 พักผ่อน
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-17 2017-02-17 2 พักผ่อน
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-17 2017-02-17 2 พักผ่อน
คือ add เกินมา 1 วันค่ะ
Employee ID Name LastName Position A BB Job Zone LeaveType StartDate EndDate TotalLeave Description
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-17 2017-02-17 2 พักผ่อน
รบการช่วยดู Code ให้ด้วยค่ะ
Code (VB.NET)
Private Sub Btnabsent_Click(sender As Object, e As EventArgs) Handles Btnabsent.Click
Dim iCheck As String
Dim idate1 As String
idate1 = CStr(Format(Dtpstrdate.Value, "yyyy-MM-dd"))
Dim idate2 As String
idate2 = CStr(Format(DtpEndDate.Value, "yyyy-MM-dd"))
Dim datex As Date
Dim iloop As Boolean = False
datex = Dtpstrdate.Value
If confirm("คุณต้องการเพิ่มข้อมูล หรือไม่?") = vbNo Then Return
'For i As Integer = 0 To ts
For i As Integer = 0 To DateDiff(DateInterval.Day, Dtpstrdate.Value, DtpEndDate.Value)
sql = "select count(*) from tblLeave where [Job] = '" & txtjob2.Text & "'and StartDate = '" & datex.ToString("yyyy-MM-dd") & "'"
iCheck = cx.ExecuteScalar(sql)
' Debug.Print(datex.ToString("yyyy-MM-dd") & " " & iCheck)
If iCheck > 1 Then
fail("ไม่สามารถ Plan ลาได้เนื่องจากฝั่ง'" & txtjob2.Text & "' มีคนลาครบแล้ว ในวันที่ " & datex.ToString("dd/MM/yyyy"))
txtid2.Select()
iloop = True
Return
Else
sql = ""
sql = "insert into tblLeave values('" & txtid2.Text & "','" & txtname2.Text & "','" & txtlastname2.Text & "','" & txtposition2.Text & "','" & txtA2.Text & "','" & txtBB2.Text & "','" & txtjob2.Text & "','" & txtzone2.Text & "','" & cboleave.Text & "','" & datex.ToString("yyyy-MM-dd") & "','" & idate2.ToString & "','" & txttotalleave.Text & "','" & txtcom.Text & "')"
cx.Execute(sql)
iloop = False
End If
datex = datex.AddDays(1)
Next
If iloop Then
Return
End If
If cmd_excuteNonquery() = 0 Then
fail("เพิ่มข้อมูลไม่สำเร็จ")
Else
ok("เพิ่มข้อมูลเรียบร้อยแล้ว")
refresh_all_data_userid()
txtid2.Text = ""
txtname2.Text = ""
txtlastname2.Text = ""
txtposition2.Text = ""
txtA2.Text = ""
txtBB2.Text = ""
txtjob2.Text = ""
txtzone2.Text = ""
txtphone.Text = ""
cboleave.Text = ""
Dtpstrdate.Value = Now
DtpEndDate.Value = Now
txttotalleave.Text = ""
txtcom.Text = ""
txtid2.Select()
End If
End Sub
For i As Integer = 0 To DateDiff(DateInterval.Day, Dtpstrdate.Value, DtpEndDate.Value)
'เช็ค และ เพิ่ม เป็น วันๆไปครับ ถ้าครบแล้วก็ไม่ Insert ถ้ายังก็ Insert เข้าไป
Next
Employee ID Name LastName Position A BB Job Zone LeaveType DateLeave Description
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-16 พักผ่อน
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-17 พักผ่อน
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-19 พักผ่อน
4801575 ประจงจิตต์ เดชเกลี้ยง ผู้ช่วยผู้จัดการแผนก Support ลาพักร้อน 2017-02-20 พักผ่อน
Code (VB.NET)
For i As Integer = 0 To DateDiff(DateInterval.Day, Dtpstrdate.Value, DtpEndDate.Value)
'เช็ค และ เพิ่ม เป็น วันๆไปครับ ถ้าครบแล้วก็ไม่ Insert ถ้ายังก็ Insert เข้าไป
Next
Dim days As Byte = Dtpstrdate.Value.Subtract(dtpEndDate.Value).Days + 1
Dim startDate As DateTime = dtpStartDate.Value
Dim strfixedDate As String = String.Empty
Dim sql As String = String.Empty
For i As Integer = 0 To days - 1
'2017-01-31 (ระบุให้เป็นปี ค.ศ)
strfixedDate = startDate.Year.ToString("D4") & "-" & startDate.Month.ToString("D2") & "-" & startDate.Day.ToString("D2")
sql = "select count(*) from tblLeave where [Job] = '" & txtjob2.Text & "'and StartDate = '" & strfixedDate & "'"
'Execute your SQL
If iCheck > 1 Then
Else
sql = "insert into tblLeave values('" & strfixedDate & "')"
End If
startDate = startDate.AddDays(1)
Next