สมัครสมาชิก
 

กำหนดช่วงวันที่



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

22 พ.ค. 62 , 10:22:27
อ่าน 240 ครั้ง

pondniizz

  • สมาชิกไท.Access
  • กระทู้: 8

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

กำหนดช่วงวันที่
« เมื่อ: 22 พ.ค. 62 , 10:22:27 »
รบกวนสอบถามอาจารย์คะ  ต้องการกำหนด เดือน 

ข้อกำหนดคือ ภายในทุกๆวันที่ 10 ของเดือนจะต้องส่งงานในเดือนนั้นๆ ถ้าเลยวันที่ 10 ไปแล้วจะถือว่างานที่ถูกบันทึกมาเป็นของเดือนถัดไป


โดยกำหนดให้ มี TextBox แสดงวันที่ ปัจจุบัน (txtdate) และ TextBox แสดง เดือน  (txtmonth)

ถ้าหาก txtdate  อยู่ระหว่างวันที่ 11/5/2019 ถึง 10/6/2019  (txtmonth) ให้แสดงเป็นเดือน 6

 และถ้าหาก txtdate  เกินวันที่ อยู่ระหว่างวันที่ 11/6/2019 ถึง 10/7/2019 (txtmonth) ให้แสดงเป็นเดือนถัดไป 7

สามารถทำได้ไหมคะ รบกวนขอโค้ดด้วยนะคะ

ขอบคุณคะ

 

22 พ.ค. 62 , 16:04:28
ตอบกลับ #1

ปิ่นณรงค์

: กำหนดช่วงวันที่
« ตอบกลับ #1 เมื่อ: 22 พ.ค. 62 , 16:04:28 »

ลองดูนะครับ ไม่รู้ใช่ที่ต้องการหรือเปล่า
แนวคิดคือ
1.ถ้าเกินวันที่ 10 ก็ให้ เดือน +1
2.ถ้าเป็น เดือน 12 และ วันที่ >10 ให้ เดือนเท่ากับ 1 และ ปี+1


แบบที่ 1 แบบแสดงเดือนเป็นตัวเลข และเดือนแบบตัวอักษร
โค๊ด: [Select]
Private Sub txtDate_AfterUpdate()
Dim sMonth As String
Dim sDate As String
Dim result As String

sMonth = Month(Me.txtDate)
sDate = Day(Me.txtDate)
sYear = Format(txtDate, "yyyy")

If sDate <= 10 Then
result = Me.txtDate
Else
result = sDate & "/" & sMonth + 1 & "/" & sYear
If (Mid(result, 4, 2)) = "13" Then

result = sDate & "/" & "1" & "/" & (Format(txtDate, "yyyy") + 1)
Else
result = result
End If
End If
result = result
Me.txtMonth = "เดือน" & Month(result) & " " & MonthName(Month(result))
End Sub

แบบที่ 2 แสดงเดือนและปีแบบเต็ม
โค๊ด: [Select]
Private Sub txtDate_AfterUpdate()
Dim sMonth As String
Dim sDate As String
Dim result As String

sMonth = Month(Me.txtDate)
sDate = Day(Me.txtDate)
sYear = Format(txtDate, "yyyy")

If sDate <= 10 Then
result = Me.txtDate
Else
result = sDate & "/" & sMonth + 1 & "/" & sYear
If (Mid(result, 4, 2)) = "13" Then 'ดักเงื่อนไข กรณี เดือน 12 +1 จะเท่ากับ 13

result = sDate & "/" & "1" & "/" & (Format(txtDate, "yyyy") + 1) 'ก็ให้แปลงกลับเป็นเดือน 1 และ +ปี ไปอีก 1
Else
result = result
End If
End If
Me.txtMonth = result

End Sub
« แก้ไขครั้งสุดท้าย: 22 พ.ค. 62 , 22:17:14 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: apirak

24 พ.ค. 62 , 15:12:14
ตอบกลับ #2

สันติสุข

  • แฟนพันธุ์แท้ไท.Access
  • *
  • กระทู้: 276
  • พลังขอบคุณ: 248

  • มรรคมีองค์ 8 คือ 1 Method ที่มีครบ 8 Parameters

    • ดูรายละเอียด

: กำหนดช่วงวันที่
« ตอบกลับ #2 เมื่อ: 24 พ.ค. 62 , 15:12:14 »
เดือน(วันที่ - 10) + 1 น่าจะให้ผลเดียวกันได้
ช่วยพกถุงผ้า หรือถุงพลาสติกที่สะอาดและผ่านการใช้มาแล้ว ไปซื้อของเพื่อลดการใช้พลาสติก ลดขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อเป็นการสนับสนุนเวปบอร์ดให้สามารถอยู่บริการเป็นแหล่งความรู้ไปได้นานๆ
 
โพสต์นี้ได้รับคำขอบคุณจาก: ปิ่นณรงค์

24 พ.ค. 62 , 15:20:44
ตอบกลับ #3

ปิ่นณรงค์

: กำหนดช่วงวันที่
« ตอบกลับ #3 เมื่อ: 24 พ.ค. 62 , 15:20:44 »
เดือน(วันที่ - 10) + 1 น่าจะให้ผลเดียวกันได้
จริงด้วยอาจารย์ง่ายดีคับ
:love: :grin:
 

27 พ.ค. 62 , 08:01:14
ตอบกลับ #4

ปิ่นณรงค์

: กำหนดช่วงวันที่
« ตอบกลับ #4 เมื่อ: 27 พ.ค. 62 , 08:01:14 »
ตัวอย่าง 2 แบบ
:love: :grin:
 

27 พ.ค. 62 , 10:09:22
ตอบกลับ #5

pondniizz

  • สมาชิกไท.Access
  • กระทู้: 8

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: กำหนดช่วงวันที่
« ตอบกลับ #5 เมื่อ: 27 พ.ค. 62 , 10:09:22 »
ขอบคุณมากๆ นะคะ 
 :love: :love: :love:

 


บอร์ดเรียนรู้ Access สำหรับคนไทย