ปีบัญชี
กระทู้เก่าบอร์ด อ.Yeadram

 1,608   4
URL.หัวข้อ / URL
ปีบัญชี

เรียนถามอาจารย์ผู้รู้ทุกท่านครับ
พอดีผมเพิ่งเริ่มหัดทำ Access กับข้อมูลของที่ทำงาน
เกี่ยวกับเรื่องปีบัญชีของบริษัท คือ ที่บริษัทเป็นปีบัญชีแบบเริ่ม 1 เม.ย. - 31 มี.ค. 20xx
จะต้องทำอย่างไรเวลาให้แสดงข้อมูลเฉพาะปีบัญชีที่เราต้องการครับ เช่น 2007 ก็จะเอาข้อมูลตั้งแต่
วันที่ 1 เม.ย. 2007 ถึง 31 มี.ค. 2008 โดยให้เรียงข้อมูลตามเดือน(ปี)ที่เกิดก่อน
ตอนนี้ที่ผมทำอยู่คือเพิ่มในตารางเป็นช่องที่ใช้ใส่ข้อมูลปีบัญชี (เป็น Text) โดยใส่ค่า default เป็นปี
บัญชีปัจจุบันแต่มันไม่ค่อยสะดวกครับ เพราะต้องมาแก้ทุกครั้งที่เริ่มปีบัญชีใหม่ หรือเมื่อมีการแก้ไข
ข้อมูลช่วงเปลี่ยนปีบัญชีก็ต้องมาตามแก้ใน Table ทุกครั้งครับ
ขอบคุณล่วงหน้าสำหรับคำตอบครับ

4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R00660
เข้าใจว่าต้องการกำหนดค่า Default ให้กับปีที่จะกรอกข้อมูล ถ้าไม่อยากเปลี่ยนเอง ก็ต้องเขียน FUNCTION ส่วนจะเขียนอย่างไร ก็ต้องรู้ว่า วิธีคิดปีบัญชีเขาคิดอย่างไร คิดแบบปี พศ หรือปีงบประมาณหรือคิดแบบ วันที่ 1 เม.ย. 2007 ถึง 31 มี.ค. 2008 เป็นปี 2007 ทั้งหมด แล้วจึงอ้าง FUNTION มาเป็นค่า DEFAULT

แต่ที่ งง หน่อยคือ จะเอาข้อมูล วันที่ 1 เม.ย. 2007 ถึง 31 มี.ค. 2008   ก็ QUERY   ออกมา ธรรมดา ? คืออ่านแล้วไม่เข้าใจนะครับ อธิบายอีกหน่อยแล้วกันครับ
2 @R00662
ขอบคุณสำหรับคำแนะนำครับ
ผมอาจจะอธิบายงงไปนิดนึงครับ (ขออภัยมือใหม่)
คือหลักๆผมต้องการให้ ดึงปีออกมาเป็นตัวเลขหรือตัวอักษรก็ได้ครับ
เช่น ข้อมูลของวันที่ 1-04-2007   ก็ให้ดึงเฉพาะ 2007 ออกมา
       แต่ ข้อมูลของวันที่ 1-01-2008 ถึง 31-03-2008 ให้ดึงเเป็นเลข 2007 แทน (ยังไม่หมดปีบัญชี)
เพื่อจะนำมาใช้ตอนเรียกดูข้อมูลต่างๆอีกครั้งนึง เช่น ดูว่าผลรวมในแต่ละปีบัญชีมีการนำของเข้าหรือเบิกของออกเป็นจำนวนเท่าไหร่ หรือจะเรียกดูเป็นรายปีในแต่ละรายการว่าเป็นอย่างไร

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

จึงอยากถามว่ามีฟังก์ชั่นหรือสูตรอะไรที่จะสามารถดึงเฉพาะเลขปีออกมา แล้วให้ได้เป็นค่าปีที่ถูกต้องครับ

3 @R00664
Function a(y)
Dim b
b = year(y)
If y >= DateSerial(b, 4, 1) And y <= DateSerial(b, 12, 31) Then
a = b
End If

If y >= DateSerial(b, 1, 1) And y <= DateSerial(b, 3, 31) Then
a = b - 1
End If

End Function

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