สอบถามการสร้าง Expression เพื่อนับอายุงานครับ


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

11 พ.ย. 62 , 11:22:33
อ่าน 1216 ครั้ง

Tatchawin

ทุกท่านครับ ผมต้องการคำนวณหาอายุงาน โดยมีเงื่อนไขดังนี้

1. ผมมี Field CompanyHiringDate เพื่อบันทึกวันที่เข้างาน และ TerminateDate เพื่อบันทึกวันออกจากงาน
2. เงื่อนไขผมคือ หากพนักงานยังทำอยู่ จะไม่มีวันที่ระบุในช่อง TerminateDate การคำนวณจะคำนวณตั้งแต่วันเข้างานถึงปัจจุบัน
แต่ถ้าพนักงานลาออกจากงาน จะมีการระบุวันที่ออกจากงานในช่อง TerminateDate ให้คำนวณเฉพาะช่วงวันเข้างาน (CompanyHiringDate)
ถึงวันที่ออกจากงาน (TerminateDate)

โดยผมเขียน Expression ตามคลิปด้านล่างนี้ครับ ซึ่งเป็นการคำนวณตั้งแต่เข้างาน จนถึงปัจจุบัน ไปเรื่อยๆไม่สิ้นสุด
คำถามคือ จะทำอย่างไรให้หยุดคำนวณตามช่วงเวลา เมื่อมีการระบุวันที่ออกจากงาน หรือมีวิธีอื่นที่ดีกว่า รบกวนแนะนำด้วยนะครับ

รบกวนด้วยนะครับ ขอบคุณครับ

หมายเหตุ:
Expression ที่ผมใช้ คือ

คำนวณวัน
CompanyHiringDate_Day:
IIf(DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],Date()),[CompanyHiringDate]),Date())<0,DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],Date())-1,[CompanyHiringDate]),Date()),DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],Date()),[CompanyHiringDate]),Date()))

คำนวณเดือน
CompanyHiringDate_Month: IIf(DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],Date()),[CompanyHiringDate]),Date())<0,(DateDiff("m",[CompanyHiringDate],Date())-1) Mod 12,DateDiff("m",[CompanyHiringDate],Date()) Mod 12)

คำนวณปี
CompanyHiringDate_Year: IIf(DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],Date()),[CompanyHiringDate]),Date())<0,(DateDiff("m",[CompanyHiringDate],Date())-1)\12,DateDiff("m",[CompanyHiringDate],Date())\12)






 

12 พ.ย. 62 , 15:18:26
ตอบกลับ #1

TTT

: สอบถามการสร้าง Expression เพื่อนับอายุงานครับ
« ตอบกลับ #1 เมื่อ: 12 พ.ย. 62 , 15:18:26 »
เราก็สามารถสร้างเงื่อนไขต่อไปได้ครับว่า ถ้าฟิลด์ TerminateDate มีค่าก็ให้เทียบค่าวันที่ฟิลด์นี้ แต่ถ้าไม่มีค่าก็เทียบค่าวัน ที่วันที่ปัจจุบัน
คำนวณวัน
CompanyHiringDate_Day:
IIf(isnull([TerminateDate]),
IIf(DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],Date()),[CompanyHiringDate]),Date())<0,DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],Date())-1,[CompanyHiringDate]),Date()),DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],Date()),[CompanyHiringDate]),Date())),
IIf(DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],[TerminateDate]),[CompanyHiringDate]),[TerminateDate])<0,DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],[TerminateDate])-1,[CompanyHiringDate]),[TerminateDate]),DateDiff("d",DateAdd("m",DateDiff("m",[CompanyHiringDate],[TerminateDate]),[CompanyHiringDate]),[TerminateDate])))

ทำในส่วนของ เดือน และ ปี ด้วย ประมาณนี้ครับ
ฐานข้อมูลเป็นเรื่องใกล้ตัว ใครๆก็ทำฐานข้อมูลเองได้นะครับhttp://www.youtube.com/c/AccessCreator
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

12 พ.ย. 62 , 20:45:44
ตอบกลับ #2

Tatchawin

: สอบถามการสร้าง Expression เพื่อนับอายุงานครับ
« ตอบกลับ #2 เมื่อ: 12 พ.ย. 62 , 20:45:44 »
ขอบคุณมากๆ ทำได้แล้วครับ
คลิปในยูทูปของท่าน มีประโยชน์มากครับ เอาไปประยุกต์ใช้ได้จริง

 
โพสต์นี้ได้รับคำขอบคุณจาก: TTT


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


 

Sitemap 1 2 3 4 5