กระทู้เก่าบอร์ด อ.Yeadram
1,734 14
URL.หัวข้อ /
URL
รบกวนสอบถามอาจารย์ สันติสุข อีกครั้งครับ
(สร้าง โมดูล ใหม่ชึ้นมา 1 ตัว จะตั้งชื่ออะไรก็ได้ แล้วเอาโค้ดในกระทู้ 1702 ลงไปแปะใว้ แต่ให้แก้ตามกระทู้ 5009 แล้วก็ไปสร้างคิวรี่ใหม่ เปิดเป็น SQL view แล้วป้อนคำสั่ง
select T.*, pfNextWorkDT(T.DeliveryDate, T.LeadTime) from tblFOB as T )
ทำออกมาได้แล้วครับแต่ค่าที่ออกมาเป็นบวกไปข้างหน้า [DeliveryDate] +[LeadTime]
แต่ผมอยากให้มันเป็นค่าลบครับ (ย้อนหลัง) [DeliveryDate] - [LeadTime]
ขอบคุณครับผม
select T.*, pfNextWorkDT(T.DeliveryDate, T.LeadTime) from tblFOB as T )
ทำออกมาได้แล้วครับแต่ค่าที่ออกมาเป็นบวกไปข้างหน้า [DeliveryDate] +[LeadTime]
แต่ผมอยากให้มันเป็นค่าลบครับ (ย้อนหลัง) [DeliveryDate] - [LeadTime]
ขอบคุณครับผม
14 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R21850
ขอบคุณครับผม
3 @R21861
Run Query แล้วมัน Error ขึ้นว่า Not responding ครับ
4 @R21862
เข้าไปที่โค้ดที่สร้าง แล้วกด Ctrl-G เพื่อเปิด Immediate Window แล้วป้อน
? pfNextWorkDT(date(), 2)
ผลลัพธ์ที่แสดงออกมาถ้าถูกต้องควรเป็นวันที่ 11 ที่ผ่านมา แต่ถ้ากดปั๊ป เงียบหายไปเกิน 5 วิ แปลว่าคุณน่าจะเขียนโค้ดผิดตรงไหนสักแห่งแล้ว ให้กด Ctrl-Break เพื่อหยุดโค้ด ไปเมนู Run เลือก Reset เพื่อจบการทำงานครับ แล้วเช็คโค้ดว่าเขียนผิดที่ไหนหรือไม่
? pfNextWorkDT(date(), 2)
ผลลัพธ์ที่แสดงออกมาถ้าถูกต้องควรเป็นวันที่ 11 ที่ผ่านมา แต่ถ้ากดปั๊ป เงียบหายไปเกิน 5 วิ แปลว่าคุณน่าจะเขียนโค้ดผิดตรงไหนสักแห่งแล้ว ให้กด Ctrl-Break เพื่อหยุดโค้ด ไปเมนู Run เลือก Reset เพื่อจบการทำงานครับ แล้วเช็คโค้ดว่าเขียนผิดที่ไหนหรือไม่
5 @R21863
ขึ้นเป็นวันที่ 15/3/16 ครับ
6 @R21864
ผมลองจำลองไฟล์ใหม่ให้ชื่อฟิลล์เหมือนในเว็บแล้วก็ยังไม่ได้ครับ หาวันไปข้างหน้าได้แล้วครับ แต่หาวันย้อนหลังมันไม่ได้ครับ
ผมลองทดสอบ 10/4/16 + 10 = 27/4/16 (หักวันหยุด) ได้แล้วครับ
แต่ 10/4/16 - 10 เขียน code สลับตำแหน่งเหมือนที่อาจารย์บอกแล้วครับ แต่ยังไม่ได้ครับ
ผมลองทดสอบ 10/4/16 + 10 = 27/4/16 (หักวันหยุด) ได้แล้วครับ
แต่ 10/4/16 - 10 เขียน code สลับตำแหน่งเหมือนที่อาจารย์บอกแล้วครับ แต่ยังไม่ได้ครับ
7 @R21866
เอาโค้ดที่คุณเขียนมาแสดงให้ดูหน่อยครับ
8 @R21867
อันเดียวกับกระทู้ 1702 เลยครับ เพราะผม copy ของอาจารย์ไปเลยครับ แล้วก็สร้างชื่อฟิลล์ให้เหมือนของอาจารย์
9 @R21868
อาจารย์พอจะมีไฟล์งานตัวอย่างหรือเปล่าครับ
10 @R21869
ถึงก๊อปปี้ไปแล้ว ก็เอาแสดงหน่อยครับ
11 @R21870
สักครู่นะครับ ผมยังหาวิธี reply จากคอมไม่ได้เลยครับ ไม่รู้เหมือนกันว่าทำไม ผมใช้มือถือถึง reply ได้
12 @R21871
ลองล้าง cookies ของโปรแกรมเบราเซอร์ดูครับ อาจช่วยได้
13 @R21872
Public Function pfNextWorkDT(pStartDT As Date, pNumOfDay As Long) As Date
' pStartDT = ???????????
' pNumOfDy = ?????????????
'
' ?????????? ???????????????????????????????????????????????????????????????????? (pStartDT + pNumOfDay)
' ????????????????? ?????????????????????????????????????????????????? ???????????????????????? (pStartDT + pNumOfDay + wLastTotalHol)
' ??????????????????? ???????????????????????????????????? ???????????????????????? ??????????????????????? ?????????????????????????
' ??????????????? ?????????????????????????? ???????????????????????????? ?????????????????????????
Dim wEndDT As Date ' ??????????
Dim wDay As Integer ' ??????????????????????????????????????? ?????????????????
Dim wSat As Integer ' ????????????????????????????????????????????
Dim wSun As Integer ' ??????????????????????????????????????????????
Dim wTradHol As Integer ' ?????????????????????????????????????????????????????
Dim wTotalHol As Integer ' ?????????????????????????????????????????????????????
Dim wLastTotalHol As Integer ' ??????????????? ?????????????????????
wTotalHol = 0
Do
wLastTotalHol = wTotalHol
wDay = pNumOfDay + wLastTotalHol
wEndDT = DateAdd("d", wDay - 1, pStartDT)
wSat = DateDiff("ww", pStartDT - 1, wEndDT, 7)
wSun = DateDiff("ww", pStartDT - 1, wEndDT, 1)
wTradHol = DCount("HDATE", "HolidayDate", "HDATE between #" & Format$(pStartDT, "dd-mmm-yyyy") & "# and #" & Format$(wEndDT, "dd-mmm-yyyy") & "#")
wTotalHol = wSat + wSun + wTradHol
Loop Until wTotalHol = wLastTotalHol
pfNextWorkDT = wEndDT
End Function
' pStartDT = ???????????
' pNumOfDy = ?????????????
'
' ?????????? ???????????????????????????????????????????????????????????????????? (pStartDT + pNumOfDay)
' ????????????????? ?????????????????????????????????????????????????? ???????????????????????? (pStartDT + pNumOfDay + wLastTotalHol)
' ??????????????????? ???????????????????????????????????? ???????????????????????? ??????????????????????? ?????????????????????????
' ??????????????? ?????????????????????????? ???????????????????????????? ?????????????????????????
Dim wEndDT As Date ' ??????????
Dim wDay As Integer ' ??????????????????????????????????????? ?????????????????
Dim wSat As Integer ' ????????????????????????????????????????????
Dim wSun As Integer ' ??????????????????????????????????????????????
Dim wTradHol As Integer ' ?????????????????????????????????????????????????????
Dim wTotalHol As Integer ' ?????????????????????????????????????????????????????
Dim wLastTotalHol As Integer ' ??????????????? ?????????????????????
wTotalHol = 0
Do
wLastTotalHol = wTotalHol
wDay = pNumOfDay + wLastTotalHol
wEndDT = DateAdd("d", wDay - 1, pStartDT)
wSat = DateDiff("ww", pStartDT - 1, wEndDT, 7)
wSun = DateDiff("ww", pStartDT - 1, wEndDT, 1)
wTradHol = DCount("HDATE", "HolidayDate", "HDATE between #" & Format$(pStartDT, "dd-mmm-yyyy") & "# and #" & Format$(wEndDT, "dd-mmm-yyyy") & "#")
wTotalHol = wSat + wSun + wTradHol
Loop Until wTotalHol = wLastTotalHol
pfNextWorkDT = wEndDT
End Function
14 @R21873
คุณยังไม่ได้แก้ตามที่ผมบอกในคำตอบ R21844 ที่ต้นของกระทู้นี้เลย !!
Time: 0.3120s
wSat = DateDiff("ww", wEndDT - 1, pStartDT, 7)
wSun = DateDiff("ww", wEndDT - 1, pStartDT, 1)