กระทู้เก่าบอร์ด อ.Yeadram
2,113 19
URL.หัวข้อ /
URL
อยากบันทึกวันเวลาลง field อัตโนมัติ เมื่อมีการอัพเ
รบกวนขอความรู้ครับ
ผมต้องการบันทึกวันเวลาลง field โดยอัตโนมัติ เมื่อมีการอัพเดทอีก field (ที่เป็น true/false)
เป็นต้นว่า ผมติ๊กถูกที่ form แล้ว อยากให้เก็บวันเวลาที่ติ๊กลงไปอีก field หนึ่ง(ที่สร้างไว้แล้ว)
ผมต้องการบันทึกวันเวลาลง field โดยอัตโนมัติ เมื่อมีการอัพเดทอีก field (ที่เป็น true/false)
เป็นต้นว่า ผมติ๊กถูกที่ form แล้ว อยากให้เก็บวันเวลาที่ติ๊กลงไปอีก field หนึ่ง(ที่สร้างไว้แล้ว)
19 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R21747
ขอบคุุณ คุณสันติสุข มากครับ
วันนี้จะลองทำดูครับ ^^
วันนี้จะลองทำดูครับ ^^
3 @R21752
Private Sub Form_BeforeUpdate()
If Not Me.NewRecord Then
If Me.[Hold] <> Me.[Hold].OldValue Then
Me.[HoldDate] = Now()
End If
End If
End Sub
รบกวนถามอีกทีครับ แบบนี้ถูกหรือไม่ครับ
ฟิลด์ ทรู/ฟอลส์ ผมชื่อ [Hold]
อัพเดทใส่ฟิลด์ชื่อ [HoldDate]
มันไม่ได้ครับ ไม่อัพให้ครับ
If Not Me.NewRecord Then
If Me.[Hold] <> Me.[Hold].OldValue Then
Me.[HoldDate] = Now()
End If
End If
End Sub
รบกวนถามอีกทีครับ แบบนี้ถูกหรือไม่ครับ
ฟิลด์ ทรู/ฟอลส์ ผมชื่อ [Hold]
อัพเดทใส่ฟิลด์ชื่อ [HoldDate]
มันไม่ได้ครับ ไม่อัพให้ครับ
4 @R21753
ถ้าไม่อัพเดต แต่ไม่มี error อะไร ลองเช็คสิครับว่าตรงตามเงื่อนไขที่ผมบอกหรือไม่
โค้ดนี้จะเก็บวันเวลาก็ต่อเมื่อ
1. ไม่ใช่เรคอร์ดใหม่
และ
2. ฟิลด์ TrueFalse มีค่าเปลี่ยนไป
โค้ดนี้จะเก็บวันเวลาก็ต่อเมื่อ
1. ไม่ใช่เรคอร์ดใหม่
และ
2. ฟิลด์ TrueFalse มีค่าเปลี่ยนไป
5 @R21754
อยู่ในเงื่อนไขทั้ง 2 ข้อครับ
6 @R21755
ไปที่ฟอร์ม - เปิดโหมด Design View - กดปุ่ม F4 - ดูว่ามีตามที่รูปวงไว้หรือไม่

7 @R21764
มีครับ
เกรงใจคุณสันติสุขจังครับ ที่รบกวน ^^

เกรงใจคุณสันติสุขจังครับ ที่รบกวน ^^
8 @R21765
ตอนติ๊กไม่มี alert แต่พอปิด form แล้วขึ้น alert ครับ

9 @R21768
โค้ดที่ให้ไป จะยังไม่ทำงานตอนที่ติ๊กนะครับ แต่จะทำตอนที่เรคอร์ดกำลังจะถูกบันทึก เช่นเมื่อเราคลิกเมาส์เคอร์เซอร์ที่เรคอร์ดอื่น ยังไงก็ตาม ถ้าโค้ดทำงานถูกต้อง ก็ไม่ควรจะเกิด error ใดๆ ตอนอยู่ใน VBA editor ให้ทำการ Compile (อยู่ในเมนู Debug) โค้ดดูครับว่าจะมีข้อผิดพลาดอะไรฟ้องออกมาหรือไม่ ถ้าคลิก Compile ไม่ได้ แปลว่าได้ถูก Compile ไปแล้ว และไม่มีข้อผิดพลาดใดๆเกิดขึ้น คงต้องหาว่าเกิดจากอะไรอีกที
ปล. ผมพบลูกค้าอยู่ จะตอบอีกทีก็ดึกๆนะครับ
ปล. ผมพบลูกค้าอยู่ จะตอบอีกทีก็ดึกๆนะครับ
10 @R21771
ได้ผลยังไงแล้วแจ้งให้ทราบด้วยนะครับ
11 @R21774
compile แล้วครับ ติด
(table ใน field นี้เป็นชนิดวันที่ ที่ link มาจาก SQL server ครับ)

(table ใน field นี้เป็นชนิดวันที่ ที่ link มาจาก SQL server ครับ)
12 @R21775
แน่ใจหรือเปล่าครับชื่อ Hold และ HoldDate ถูกต้อง คอมไพล์แล้ว error ที่ไหน ก็เป็นชื่อในบรรทัดนั้นแหล่ะที่ผิด เวลาใส่ ไม่จำเป็นต้องมีเครื่อง [ ] สังเกตุจะเห็นว่าเวลาคีย์คำว่า Me. จะมีชื่อคอนโทรลแสดงออกมาให้เลือกด้วย ถ้าตรงนั้นไม่มีชื่อ Hold หรือ HoldDate ก็แปลว่าเป็นชื่ออื่นแล้ว เช็คอีกทีครับ
13 @R21776
ชื่อถูกนะครับ
complie แล้วติดตรง .OldValue ครับ

complie แล้วติดตรง .OldValue ครับ
14 @R21777
ตกลงแปลว่า Hold ไม่ได้เป็นฟิลด์บนเทเบิลใช่ไหมครับ
15 @R21778
เป็น field บน table ของ SQL ครับ
แล้ว link table มาใช้บน access ครับ
แล้ว link table มาใช้บน access ครับ
16 @R21779
แปลว่าชื่อ checkbox บนฟอร์มเป็นชื่ออื่นที่ไม่ใช่ Hold ? ถ้าใช่ ก็เปลี่ยนเป็นชื่อตามที่ปรากฏบนฟอร์มนะครับ
17 @R21780
ขอบคุณครับ เวลาขึ้นแล้วครับ
แต่ write conflict แทน ^^
แต่ write conflict แทน ^^

18 @R21781
ลองเปลี่ยนชื่อ HoldDate เป็นชื่อที่อยู่บนฟอร์มครับ ไม่อีกอย่างก็มีโปรแกรมอื่นไม่ว่าจะเครื่องเดียวกับเราหรือจากเครื่องอื่น ทำการแก้ไขเรคอร์ดที่ว่าระหว่างที่เราเริ่มแก้ไขครับ
19 @R21791
ขอบคุณมากครับ
รบกวนซะเยอะเลย
รบกวนซะเยอะเลย

Time: 0.3903s
Private Sub Form_BeforeUpdate(Cancel As Integer)
If not Me.NewRecord then
If Me.ฟิลด์TrueFalse <> Me.ฟิลด์TrueFalse.OldValue then
Me.ฟิลด์วันเวลา = Now()
End If
End If
End Sub
โค้ดนี้จะเก็บวันเวลาก็ต่อเมื่อ
1. ไม่ใช่เรคอร์ดใหม่
และ
2. ฟิลด์ TrueFalse มีค่าเปลี่ยนไป