กระทู้เก่าบอร์ด อ.Yeadram
1,247 1
URL.หัวข้อ /
URL
สอบถามเกี่ยวกับการชำระเงินทุกๆวันที่ค่ะ
สวัสดีค่ะ ท่านอาจารย์ทุกท่านวันนี้หนูมีเรื่องรบกวนสอบถามเกี่ยวกับการกำหนดวันที่ในการชำระเงินค่ะ
รายละเอียดนะคะ คือหนูสร้างตารางไว้หนึ่งตารางชื่อว่า "TbContract " ค่ะ ในตารางนี้จะมีฟิลด์อยู่ 2 ฟิลด์ที่หนูต้องการให้คำนวณค่าออกมาค่ะ คือฟิลด์ "วันที่เริ่มทำสัญญา" และฟิลด์ "กำหนดชำระทุกวันที่" หนูขอแยกถามเป็นข้อๆนะคะ
ข้อหนึ่ง หนูออกแบบตารางอย่างที่กล่าวมาถูกต้องไหมค่ะ ถ้าไม่ถูกหนูต้องแก้ไขอย่างไรค่ะ
ข้อสอง (ถ้าหนูทำตามข้อหนึ่งถูกต้องแล้ว) ในฟิลด์ "วันที่เริ่มทำสัญญา" หนูตั้งไว้ให้เป็นข้อมูลประเภท Date/Time ส่วนฟิลด์ "กำหนดชำระทุกวันที่" หนูควรตั้งประเภทของข้อมูลอย่างไรดีคะ เพื่อที่ให้ข้อมูลของฟิลด์ทั้งสองสามารถคำนวณกันได้คะ
ข้อสาม หนูต้องการหาวันที่ต้องชำระเงิน เช่น เริ่มทำสัญญาวันที่ 18/10/2554 จะต้องชำระเงินในทุกวันที่ 18 ของเดือนถัดไป ซึ่งแต่ละเดือนจะมีจำนวนวันไม่เท่ากัน หนูควรจะต้องเขียนโค๊ดอย่างไร และเขียนในส่วนไหนดีคะ
ปล. หนูค้นหาแล้วไปเจอข้อมูลมาจากกระทู้นี้ค่ะ
http://www.thai-access.com/yeadram_view.php?topic_id=981
การใช้ DateAdd() นั้น หนูไม่ทราบว่าใช่หรือไม่กับงานของหนู เพราะวันที่แต่ละเดือนไม่ตายตัวน่ะคะ
หนูรบกวนสอบถามทุกๆท่านด้วยนะคะ
รายละเอียดนะคะ คือหนูสร้างตารางไว้หนึ่งตารางชื่อว่า "TbContract " ค่ะ ในตารางนี้จะมีฟิลด์อยู่ 2 ฟิลด์ที่หนูต้องการให้คำนวณค่าออกมาค่ะ คือฟิลด์ "วันที่เริ่มทำสัญญา" และฟิลด์ "กำหนดชำระทุกวันที่" หนูขอแยกถามเป็นข้อๆนะคะ
ข้อหนึ่ง หนูออกแบบตารางอย่างที่กล่าวมาถูกต้องไหมค่ะ ถ้าไม่ถูกหนูต้องแก้ไขอย่างไรค่ะ
ข้อสอง (ถ้าหนูทำตามข้อหนึ่งถูกต้องแล้ว) ในฟิลด์ "วันที่เริ่มทำสัญญา" หนูตั้งไว้ให้เป็นข้อมูลประเภท Date/Time ส่วนฟิลด์ "กำหนดชำระทุกวันที่" หนูควรตั้งประเภทของข้อมูลอย่างไรดีคะ เพื่อที่ให้ข้อมูลของฟิลด์ทั้งสองสามารถคำนวณกันได้คะ
ข้อสาม หนูต้องการหาวันที่ต้องชำระเงิน เช่น เริ่มทำสัญญาวันที่ 18/10/2554 จะต้องชำระเงินในทุกวันที่ 18 ของเดือนถัดไป ซึ่งแต่ละเดือนจะมีจำนวนวันไม่เท่ากัน หนูควรจะต้องเขียนโค๊ดอย่างไร และเขียนในส่วนไหนดีคะ
ปล. หนูค้นหาแล้วไปเจอข้อมูลมาจากกระทู้นี้ค่ะ
http://www.thai-access.com/yeadram_view.php?topic_id=981
การใช้ DateAdd() นั้น หนูไม่ทราบว่าใช่หรือไม่กับงานของหนู เพราะวันที่แต่ละเดือนไม่ตายตัวน่ะคะ
หนูรบกวนสอบถามทุกๆท่านด้วยนะคะ
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
Time: 0.3385s
แต่ถ้าจะกำหนดขึ้นมาลอยๆ เพื่อเป็น ตารางเทียบค่า ก็ไม่จำเป็นตั้งเป็นกฎแล้วควบคุมด้วย module ดีกว่า
2) ต้องกำหนดให้ได้ก่อนว่า กรณีวันที่แต่ละเดือนมีไม่เท่ากัน จะให้วันกำหนดชำระเป็นวันที่เท่าไร
เช่น ทำสัญญา 29 ก.พ. กำหนดชำระต้องเป็นอย่างไร เช่น ถือเป็นวันสิ้นเดือนของทุกเดือน หรือ 29 ของทุกเดือน แต่ถ้าเดือนนั้นไม่มี วันที่ 29 ให้เปลี่ยนเป็นวันสิ้นเดือนของเดือนนั้น (กรณีปีที่ ก.พ. มีแค่ 28 วัน)
ซึ่ง field กำหนดชำระทุกวันที่ - ออกแบบได้ 2 วิธี (ที่ผมจะแนะนำ)
-1- ไม่ต้องมี field นี้เลย เพราะทุกครั้งที่จะคำนวณหา ก็หาได้โดยตรงจาก "วันที่เริ่มทำสัญญา" อยู่แล้ว
-2- ถ้าจะมี เช่นเผื่อในกรณี ลูกค้าขอเปลี่ยนวันได้ ให้กำหนดเป็นตัวเลข Long หรือ Integer ก็ได้
*เทคนิคเพิ่มเติม คือ สำมารถ กำหนด ให้ค่า 1-31 แทนวันที่ แต่ถ้าเป็น 0 หมายถึง วันสิ้นเดือน
3) กำหนดกฎตามข้อ 2) ครับ ส่วนเขียน code ที่ไหน ก็อยู่ที่ว่า code นี้มีการใช้งานจากหลายหน้าจอหรือไม่
- ถ้าใช่ สร้าง module ขึ้นมาแล้วสร้างเป็น Public Function ให้เรียกใช้งานจากทุก Form, Report
- ถ้าไม่ใช่ สร้าง เป็น Function หรือ Sub ใน Form ที่เรียกใช้งานได้เลย
กรณีนี้ไม่ควรใช้ DateAdd() เพราะไม่ใช้ "อีกกี่วันจ่าย" แต่เป็น "ต้องจ่ายวันที่เท่าไรของเดือน/ปี นั้นๆ" - ให้ใช้ DateSerial() แทนครับ หรืออาจจะไม่จำเป็นก็ได้ ขึ้นอยู่กับการแสดงผล และ ต้องการนำไปคำนวณอะไรต่อด้วยครับ