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

 2,611   24
URL.หัวข้อ / URL
ถึง อาจารย์สันติสุขครับ (พอดีผม Reply ในกระทู้เก่า

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", wEndDT - 1, pStartDT, 7)

       wSun = DateDiff("ww", wEndDT - 1, pStartDT, 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

24 Reply in this Topic. Dispaly 2 pages and you are on page number 2

21 @R21982
น่าจะเป็นตรง Dcount หรือเปล่าครับ เพราะรันคิวรีแล้วมีป๊อบอัพโชว์เกี่ยวกับ 'HDATE = #17-Nov-2014' ประมาณนี้ครับ
22 @R21983
ผมลองลบให้เหลือ ,HDATE=Format$(wEndDT,"dd-mmm-yyyy") มันรันได้แต่ ยังลบกันไปตรงวันหยุดครับ
23 @R21989
แก้บรรทัด Do While เป็น

Do While (wDayOfWeek = vbSaturday) or (wDayOfWeek = vbSunday) or (DCount("HDATE", "HolidayDate", "HDATE = #" & Format$(wEndDT, "dd-mmm-yyyy" & "#")) > 0)

24 @R21991
ได้แล้วครับผม ขอบคุณมากครับอาจารย์
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2143s