รบกวนดู Code หน่อยค่ะ คือต้องการ Add ช่วงวันที่เริ่มลา ถึง วันสิ้นสุดการลาค่ะ บันทึกใน table การลา เช่น
วันที่เริ่มลา 2017-02-16 สิ้นสุดการลา 2017-02-17
ผลลัพธ์ที่ต้องการ คือ
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)
01.
Private
Sub
Btnabsent_Click(sender
As
Object
, e
As
EventArgs)
Handles
Btnabsent.Click
02.
Dim
iCheck
As
String
03.
Dim
idate1
As
String
04.
idate1 =
CStr
(Format(Dtpstrdate.Value,
"yyyy-MM-dd"
))
05.
Dim
idate2
As
String
06.
idate2 =
CStr
(Format(DtpEndDate.Value,
"yyyy-MM-dd"
))
07.
Dim
datex
As
Date
08.
Dim
iloop
As
Boolean
=
False
09.
datex = Dtpstrdate.Value
10.
11.
12.
13.
If
confirm(
"คุณต้องการเพิ่มข้อมูล หรือไม่?"
) = vbNo
Then
Return
14.
15.
'For i As Integer = 0 To ts
16.
17.
For
i
As
Integer
= 0
To
DateDiff(DateInterval.Day, Dtpstrdate.Value, DtpEndDate.Value)
18.
19.
sql =
"select count(*) from tblLeave where [Job] = '"
& txtjob2.Text &
"'and StartDate = '"
& datex.ToString(
"yyyy-MM-dd"
) &
"'"
20.
21.
iCheck = cx.ExecuteScalar(sql)
22.
' Debug.Print(datex.ToString("yyyy-MM-dd") & " " & iCheck)
23.
If
iCheck > 1
Then
24.
fail(
"ไม่สามารถ Plan ลาได้เนื่องจากฝั่ง'"
& txtjob2.Text &
"' มีคนลาครบแล้ว ในวันที่ "
& datex.ToString(
"dd/MM/yyyy"
))
25.
txtid2.
Select
()
26.
iloop =
True
27.
Return
28.
Else
29.
sql =
""
30.
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 &
"')"
31.
cx.Execute(sql)
32.
iloop =
False
33.
End
If
34.
datex = datex.AddDays(1)
35.
36.
Next
37.
If
iloop
Then
38.
Return
39.
End
If
40.
41.
If
cmd_excuteNonquery() = 0
Then
42.
fail(
"เพิ่มข้อมูลไม่สำเร็จ"
)
43.
Else
44.
ok(
"เพิ่มข้อมูลเรียบร้อยแล้ว"
)
45.
refresh_all_data_userid()
46.
txtid2.Text =
""
47.
txtname2.Text =
""
48.
txtlastname2.Text =
""
49.
txtposition2.Text =
""
50.
txtA2.Text =
""
51.
txtBB2.Text =
""
52.
txtjob2.Text =
""
53.
txtzone2.Text =
""
54.
txtphone.Text =
""
55.
cboleave.Text =
""
56.
Dtpstrdate.Value = Now
57.
DtpEndDate.Value = Now
58.
txttotalleave.Text =
""
59.
txtcom.Text =
""
60.
txtid2.
Select
()
61.
62.
63.
64.
End
If
65.
End
Sub
รบกวนด้วยน่ะค่ะ
ตอบ/อธิบาย