รบกวนสอบถามอาจารย์ สันติสุข อีกครั้งครับ
กระทู้เก่าบอร์ด อ.Yeadram

 1,578   14
URL.หัวข้อ / URL
รบกวนสอบถามอาจารย์ สันติสุข อีกครั้งครับ

(สร้าง โมดูล ใหม่ชึ้นมา 1 ตัว จะตั้งชื่ออะไรก็ได้ แล้วเอาโค้ดในกระทู้ 1702 ลงไปแปะใว้ แต่ให้แก้ตามกระทู้ 5009 แล้วก็ไปสร้างคิวรี่ใหม่ เปิดเป็น SQL view แล้วป้อนคำสั่ง
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

1 @R21844
แก้ใหม่ครับ ให้เป็น
wSat = DateDiff("ww", wEndDT - 1, pStartDT, 7)
wSun = DateDiff("ww", wEndDT - 1, pStartDT, 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 เพื่อจบการทำงานครับ   แล้วเช็คโค้ดว่าเขียนผิดที่ไหนหรือไม่
5 @R21863
ขึ้นเป็นวันที่ 15/3/16 ครับ
6 @R21864
ผมลองจำลองไฟล์ใหม่ให้ชื่อฟิลล์เหมือนในเว็บแล้วก็ยังไม่ได้ครับ หาวันไปข้างหน้าได้แล้วครับ แต่หาวันย้อนหลังมันไม่ได้ครับ

ผมลองทดสอบ 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
14 @R21873
คุณยังไม่ได้แก้ตามที่ผมบอกในคำตอบ R21844 ที่ต้นของกระทู้นี้เลย !!
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2713s