การคำนวณวันที่
กระทู้เก่าบอร์ด อ.Yeadram

 2,371   10
URL.หัวข้อ / URL
การคำนวณวันที่

ข้อ 1. ถ้าเกิดผมต้องการให้ลบข้อมูลการทำงานของพนักงานที่มีวันที่เกิน 3 เดือน จากปัจจุบันนะครับ ผมต้องเขียน Code อย่างไรครับ
ข้อ 2. ถ้าผมต้องการไม่ให้กรอกข้อมูลวันที่ใน Text box ย้อนหลังเกิน 2 วัน ผมต้องเขียนอย่างไรครับ

ขอรบกวนอาจารย์ และผู้รู้ทุกท่านด้วยนะครับ

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

1 @R02758
1:
private sub form_load()
sql = "Delete * from ตาราง where datediff("M",วันที่,Date)>3"
docmd.setwarnings false
docmd.runsql sql
end sub


2:
private sub text1_beforeupdate(cancel as integer)
cancel = datediff("d",cdate(text1),date)>=2
end sub
2 @R02764
คุณ yeadram ครับ ข้อ 2 ไม่เห็นได้เลยครับเลือกย้อนหลังเกิน 2 วันก็ได้ครับ งง?????
รบกวนอธิบายช่วยอธิบายทั้ง 2 ข้อหน่อยนะครับ ขอบคุณครับ
3 @R02769
ข้อ 1 คำอธิบายน่าจะอยู่ในคำถามหมดแล้วนะครับ ไม่รู้จะเพิ่มเติมอย่างไร
อืมม ก็คงจะบอกว่า เราต้องการลบข้อมูลออกจากตาราง ตามเงื่อนไขที่กำหนด เราก็เขียน statement ในภาษา sql ให้ได้ตามต้องการ แล้วเราก็สั่งให้มันรันครับ

ข้อ 2
อย่างไรเรียกว่า ได้
อย่างไรเรียกว่า ไม่ได้ ครับ
ถึงคีย์เข้าไปได้ มันเซฟได้หรือเปล่า แล้วมันเอา เคอร์เซอร์ไปไหนต่อได้ได้หรือเปล่า เพราะมัน สั่ง cancel ไปแล้วนะครับ
จากโจทก์ "ถ้าผมต้องการไม่ให้กรอกข้อมูล"
เราบังคับไม่ให้กรอกไม่ได้ เพราะเขามีมือ และมีคีย์บอร์ด แต่เราดักจับเหตุการณ์ได้ เหตุการณ์ที่ผมยกตัวอย่างให้ดักจับคือ.................... หลังจากคีย์ > ก่อนจะบันทึก นั่นเป็นจังหวะที่ดีที่สุดเท่าที่จะหาได้แล้วครับ ถึงเข้าคีย์เขาไปได้ แต่โปรแกรมเราก็ไม่บันทึกข้อมูลให้ครับ
4 @R02770
คือว่าข้อ 2 มันบันทึกได้ครับ ส่วนข้อ 1 เขียนCode ไม่ได้ครับ โปรแกรมมันฟ้องตรง "M" ครับ แล้วที่คุณ yeadram เขียนว่า วันที่ ต่อจาก M อะครับ หมายถึงอะไรหรอครับ ขอรบกวนด้วยนะครับ
5 @R02772
ข้อ 1
- ปัญหา "M" เปลี่ยน เอ็ม เป็นตัวพิมพ์เล็กครับ ขอโทษที่บอกผิดไปครับ
- ปัญหา "วันที่" เพราะผมก็ไม่รู้ว่า มันคือวันที่อะไร ผมก็เลยเขียนไปสั้นๆ ว่า วันที่ นึกว่า คุณจะหาใส่เองได้   ผมเอามันมาจากประโยคในคำถามประโยคนี้ครับ "ข้อมูลการทำงานของพนักงานที่มีวันที่เกิน 3 เดือน" คำว่า "วันที่เกิน 3 เดือน" ผมก็ไม่รู้ว่ามันคือวันที่อะไรครับ
6 @R02783
อ๋อครับ คือวันที่ ที่ผมหมายถึงก็คือว่า ผมมีฟิลด์ที่เก็บวันที่ ชื่อว่า date_entered ครับผมอยากจะลบข้อมูลที่มีข้อมูลวันที่จากฟิลด์ date_entered ที่ย้อนหลังเกิน 3 เดือน นะครับ แล้วอีกอย่างที่ให้เปลี่ยเป็น m เล็ก ก็ไม่ได้ครับ
7 @R02786
ขอดูโค้ดที่คุณนำไปเขียนได้ไหมครับ คุณเอาไปใช้ ตรงไหนอย่างไรบ้าง
8 @R02804
Private Sub Form_Load()
SQL = "Delete * from inv_invoiceheader where datediff(m,[date_entered],Date)>3 AND (inv_invoiceheader.invoicetype=ใบเสนอราคา) "
DoCmd.SetWarnings False
DoCmd.RunSQL
End Sub

พอผมเอาเครื่องหมาย " " จากตัว m ออก ก็ไม่ปัญหาแล้วครับ แต่มีปัญหาตอนรันนะครับ มันติดตรง docmd.runsql คือผมจะเอาโค๊ดนี้ไว้ที่หน้า main ครับ พอเปิดหน้า main ก็ให้ลบข้อมูลเลยครับผม
9 @R02808

SQL = "Delete * from inv_invoiceheader where datediff(""m"",[date_entered],Date)>3 AND (inv_invoiceheader.invoicetype=ใบเสนอราคา)"
DoCmd.SetWarnings False
DoCmd.RunSQL [SIZE=4]sql[/FONT]


โค้ด มันก็แค่นี้ อยากเอาไปวางตรงไหนก็ได้ หน้า Main คืออะไรใช่ฟอร์มหรือเปล่าล่ะครับ
10 @R02813
ได้แล้วครับ ผมไม่ได้ใส่ ""m"" ขอบคุณมากเลยครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3499s