... เรียนอาจารย์สุภาพครับ ...
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 297   3
URL.หัวข้อ / URL
... เรียนอาจารย์สุภาพครับ ...

รบกวนอาจารย์ช่วยดู Code หน่อยครับ

Dim rst2, rst3, rst4 As DAO.Recordset
Set dbs = CurrentDb()
Set rst3 = dbs.OpenRecordset("select * from work_time")
Set rst4 = dbs.OpenRecordset("select * from time_recorder")
Set rst = dbs.OpenRecordset("select * from time_recorder where trc_emp_id =" & rst3!wtm_emp_id & " and trc_date = #" & rst3!wtm_date & "# ")
Set rst2 = dbs.OpenRecordset("select * from work_time where wtm_emp_id = " & rst4!trc_emp_id & " and wtm_date = #" & rst4!trc_date & "# ")

Do
If rst!trc_duty_io = 1 And CDate("12:00") - rst!trc_time > 1 Then
rst2.Edit
rst2!wtm_timein = rst!trc_time
rst2.Update
rst.MoveNext
End If
If rst.EOF Then Exit Do
Loop

คือว่าในตาราง time_recorder มีฟิล trc_emp_id และ trc_date ตรงกับ ฟิล wtm_emp_id และ wtm_date ของตาราง work_time ถูกต้องหมดครับ ทั้งชนิดและข้อมูลข้างใน

แต่ทำไม run code แล้วมันบอกว่า no current record ที่บรรทัด
If rst!trc_duty_io = 1 And CDate("12:00") - rst!trc_time > 1 Then
ล่ะครับ ( รู้สึกจะมีปัญหา ตรง select rst กับ rst2 มีปัญหาตรงส่วน เงื่อนไขวันที่ เพราะเมื่อเอาออก เหลือแค่ เงื่อนไข emp_id อันเดียว ก็ไม่ขึ้น error ครับ)

แล้วไม่ทราบว่า ผมใส่selectเงื่อนไข วันที่ ถูกต้องไหม แต่ลองใส่แบบ " & rst4!trc_date & " ปกติ ก็ไม่ได้นะครับ ขึ้น error เหมือนกัน (หรือว่า ผมใส่คำสั่ง select ผิด เพราะ ผมได้ดึง ฟิลมาจาก rst3 , rst4 อีกต่อ)
ลองแก้ไขทั้งคืนเลยครับ จนปัญญาจิงๆ

รบกวนอาจาย์ช่วยเหลือหน่อยนะครับ
ขอบคุณมากๆ ครับ

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

1 @R04687
ลอง

Do
If rst.EOF Then Exit Do
If rst!trc_duty_io = 1 And CDate("12:00") - rst!trc_time > 1 Then
rst2.Edit
rst2!wtm_timein = rst!trc_time
rst2.Update
rst.MoveNext
End If
Loop
2 @R04698
อ้อ อาจารครับ ก็ยังไม่ได้น่ะครับ

เพราะว่ามันไม่เจอเรคอดเลย (ซึ่งผมคิดว่าน่าจะมีปัญหาตรง Set rst = dbs.OpenRecordset("select * from time_recorder where trc_emp_id =" & rst3!wtm_emp_id & " and trc_date = #" & rst3!wtm_date & "# ")
Set rst2 = dbs.OpenRecordset("select * from work_time where wtm_emp_id = " & rst4!trc_emp_id & " and wtm_date = #" & rst4!trc_date & "# ") ในส่วนของ เงื่อนไข date น่ะครับ เพราะเอาออกแล้ว run ได้นะ แต่ค้างไปเลย)

ไม่ทราบว่า ผมใส่เงื่อนไขเปรียบเทียบ date ผิดหรือป่าวครับ หรือใส่คำสั่ง select ผิด ?!?!

รบกวนอาจารช่วยเหลืออีกทีครับ จนปัญญาจริงๆ
ขอบคุณมากๆ ครับผม
3 @R04701
ลองใส่บรรทัดนี้ก่อนถึง Do ครับ

MsgBox rst2.RecordCount

แล้วดูว่ามันคืนค่าเป็น 0 หรือเปล่า

ถ้าเป็น 0 แสดงว่าไม่มีข้อมูลอะไรเลย นั่นก็หมายความว่า where clause ผิดที่ไหนสักแห่ง

ให้ลองนำ select ส่วนนี้ไปสร้างเป็น query แล้วเปิดดูว่าได้ค่าที่ถูกต้องหรือไม่ จะได้ไล่ปัญหาได้ถูกตัวครับ

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