ในวันที่กำหนด อายุว่ามากว่า 18ปี 1 วันขึ้นไปหรือยัง เพื่อตัดยอดฉีดวัคซีน



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

09 ต.ค. 64 , 15:46:42
อ่าน 236 ครั้ง

SakDa

ตอนนี้หาความรู้ในบอร์ดนี้แล้ว ได้ อายุมาเป็น ปี เดือน วัน เรียบร้อยแล้ว ต้องการตรวจดูว่า ในฐานข้อมูลจะมีคนอายุเกิน 18 ปี 1 วัน ขึ้นไปไหม ที่จะถูกตัดสิทธิ์รับวัคซีนไฟเซอร์ที่กำหนดให้ >=12ปี -18 ปีบริบูรณ์ในวันที่จะฉีด (สมมติตรง ถ้า 17 ปีกับ 2 เดือน ยังไงๆ เขาคงได้ฉีด วัคซีนไม่น่านานขนาดนั้น) ทีนี่อยากรู้ว่า ในวันที่ 11/10/2564 ที่จะถึงนี้ มีรายการฉีดวัคซีนเคลื่อน และวัคซีนที่โซนอายุเขา ไม่มาแน่นอน เลยอยากจะหาคนที่จะถูกตัดสิทธิ์จะไม่ได้รับวัคซีนดังกล่าว ระหว่างรอคำตอบ ผมก็จะนับด้วยมือไปพลางๆ

SELECT DateDiff("yyyy",[bdNoZero],Now())+Int(Format(Now(),"mmdd")<Format([bdNoZero],"mmdd")) AS NowYYAgeDetails, tbl_Students.bdNoZero, Int(DateDiff("m",[bdnozero],Now())/12) & " ปี   " & (DateDiff("m",[bdnozero],Now()) Mod 12) & " เดือน " & (DateDiff("d",[bdnozero],Now()) Mod 12) & " วัน" AS AgeYYMMDD, 11/10/2564-DateDiff("m",[bdnozero],Now())/12 & " ปี   " AS 111064AgeGreaterThan18
FROM tbl_Students;

 

09 ต.ค. 64 , 16:29:53
ตอบกลับ #1

SakDa

https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=371
ผมลองแทนค่าแล้ว เปลี่ยนจาก 20 เป็น 18 คาดว่าน่าจะเป็นชื่อฟิลด์วันเกิดที่จัดรูปแบบไม่ตรงกับกระทู้นี้...เลยไม่ได้คำตอบ

 

09 ต.ค. 64 , 19:29:34
ตอบกลับ #2

SakDa

กลับมาทำเพิ่มเติมแล้ว แต่ยังไม่ได้ตรงตามใจ ใช้ฟังก์ชั่นอายุของ อาจารย์สุภาพ ม.ขอนแก่นเพิ่มแล้ว แต่อายุไม่ตรงกับฟังก์ชั่นจากกระทู้ที่อ้างถึงข้างบน ส่วนไฟล์ในคิวรี่ ก็ถือโอกาสเช็คอายุของเด็กไปด้วยว่า
ถ้ายังไม่ถึง 12.0 ปี (อายุไม่ตรงเผ็ง ในวันที่ฉีดวัคซีน ก็ไม่ให้ฉีด ข้อมูลสมมติ หรือดูจากผังการฉีดวัคซีนแล้วคำนวณคร่าวๆ ได้(ดูจากเคยลงทะเบียนแล้วแม่อายุไม่ถึง 70 ปี บริบูรณ์เหลืออีก 15 วัน ก็ยังไม่สามารถลงทะเบียนฉีดวัคซีนว่าต้องเอาคนอายุ 70 ปีขึ้นไป)
และอีกคอลัมน์หนึ่งก็ถือโอกาสตรวจว่า มากกว่าหรือเท่ากับ 18.0 ปีไหม ในวันที่ฉีดวัคซีน ถ้ามากกว่า 18.0 ปี ก็ไม่ให้ฉีด
เพื่อส่งต่อข้อมูลครับ
ไม่รู้พอจะเข้าใจไหม สรุปว่า อยากตรวจดูว่า ถ้าอายุ ไม่ถึง 12 ปีบริบูรณ์ ไม่ต้องส่งชื่อสมัครฉีด และ อายุเกิน 18 ปีบริบูรณ์ ก็ไม่มีสิทธิ์ฉีดวัคซีนที่กำหนด
โดยแสดงข้อมูลแจ้งเตือนว่า "อายุยังไม่ถึง 12 ปีบริบูรณ์", กับ "อายุตอนนี้ ... ปี เดือน วัน" แบบนี้ครับ เวลาเอาไปแสดงในคิวรี่

 

09 ต.ค. 64 , 23:03:26
ตอบกลับ #3

OddyWriter

อ่านหลายรอบ ก็ไม่เข้าใจว่าต้องการอะไร นอกจากอายุน้อยกว่า 12 แม้แต่วันเดียวไม่เอา หรือ มากกว่า 18 ปี แม้แต่วันเดียวก็ไม่เอา

อันนี้เป็นไฟล์ที่ผมใส่ VBA เข้าไปในคำนวณเทียบกับวันปัจจุบันนะครับ
1. ให้เปิดฟอร์ม frmStudentAge แล้วคลิก Process1 ตามด้วย Process 2
2. ข้อมูลที่แยกช่วงอายุ จะอยู่ในคิวรี qryAllowAge

ไฟล์นี้ผมใช้ Access 365 ทำนะครับ
 
วิกฤติโควิดทำให้ร้อนเงิน
ใครอยากจ้างทำฐานข้อมูล สอนวางระบบฐานข้อมูล Excel/ Access/ VBA Excel/ VBA Access/ SQL Server/ Database Design
แม้กระทั่งดูดวง ก็ติดต่อได้นะครับ
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

13 ต.ค. 64 , 22:00:04
ตอบกลับ #4

SakDa

"อ่านหลายรอบ ก็ไม่เข้าใจว่าต้องการอะไร นอกจากอายุน้อยกว่า 12 แม้แต่วันเดียวไม่เอา หรือ มากกว่า 18 ปี แม้แต่วันเดียวก็ไม่เอา"
ใช่ครับ สมมติ เงื่อนไขของวัคซีนตัวนี้คือ จะฉีดได้ อายุตั้งแต่ 12 ปี บริบูรณ์ - 18 ปี บริบูรณ์ คือถ้าในวันและเวลา ที่จะต้องส่งข้อมูลวันสุดท้าย ขั้นต่ำคุณควรไม่ต่ำกว่า 12 ปีเป๊ะๆ และ อายุต้องไม่เกิน 18 ปี เป๊ะๆ ครับ
ผมโหลดไฟล์มาดูแล้วครับ ก็นำข้อมูลไปใช้ต่อได้ครับ (เป็นการเทียบอายุกับวันในเครื่องคอมพิวเตอร์ปัจจุบัน) แต่ถ้าเราต้องการคำนวณล่วงหน้าไปอีกสัก 5 วัน เราก็จะแก้ไขโดยการเปลี่ยนวันที่ที่เครืองคอมพิวเตอร์ก่อน แล้วค่อยมาใช้ฟอร์มนี้ทำงานได้
« แก้ไขครั้งสุดท้าย: 13 ต.ค. 64 , 22:16:58 โดย SakDa »

 

13 ต.ค. 64 , 22:15:18
ตอบกลับ #5

OddyWriter

สรุปแล้วคือ ต้องเทียบอายุกับวันเป้าหมายถูกไหมครับ

ไฟล์นี้แก้ไข Bug เนื่องจากพบว่าโปรแกรมไปหยิบเอาข้อมูลจากเรคอร์ดสุดท้ายมาใส่เรคอร์ดแรก
และผมเพิ่มช่องใส่วันที่ด้วย ให้ใส่ตามรูปตัวอย่างนะครับ
วิกฤติโควิดทำให้ร้อนเงิน
ใครอยากจ้างทำฐานข้อมูล สอนวางระบบฐานข้อมูล Excel/ Access/ VBA Excel/ VBA Access/ SQL Server/ Database Design
แม้กระทั่งดูดวง ก็ติดต่อได้นะครับ
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

13 ต.ค. 64 , 22:18:35
ตอบกลับ #6

SakDa

ใช่ครับ... วันเป้าหมาย คือ อยากรู้ว่ากลุ่มข้อมูลนี้มีจะมีอายุเท่าไหร่ ในวันที่เราต้องการ

 


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