เขียนเป็นโค้ดทั้งหมดวันนี้นึกไม่ออกเลยครับ
แต่!!!
จากเงื่อนไขข้างบน เราจะสังเกตุได้ว่า ในแต่ละวัน และแต่ละ UserR นั้น จะมี SEQ เดียวกัน
ไม่ว่าการเรียงลำดับนั้นจะมาก่อนหรือมาหลัง
ผมลอง DIY ดูก็ได้ผลลัพท์แบบที่ต้องการ แต่ต้องสร้างคิวรี่เพื่อให้ได้ผลลัพท์ แบบในภาพด้านบน
ลองเช็คดูเรียงลำดับจาก Q1 >>> Q2 >>> Q_Result
และท้ายสุดคือที่ปุ่มอัพเดท ข้อมูลจากคิวรี่ไปยังตารางหลัก
Q1 ดึงกลุ่ม DateR และ UserR ที่มีมาแสดง และกำหนดเลือก Autonumber(First)
เพื่อนำไปใช้ในการสร้าง การรันลำดับในคิวรี่ต่อไป
Q2 นำกลุ่มที่ได้มา เรียงลำดับ ( กำหนด SEQ ให้แต่ละ DateR และ UserR)
โดยเงื่อนไขการกำหนด SEQ ต้องมี PK ที่เรียงลำดับจากน้อยไปมากของ Autonumber(First) ที่ถูกต้อง
เพื่อการเรียงลำดับที่ถูกต้อง
(ถ้าติดปัญหาตรงนี้แจ้งได้เผื่อหาวิธีแก้ไข)Q_Result แสดงผลในแบบคิวรี่
และที่ปุ่มใส่โค้ดแบบนี้Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim strDate As String
Dim strUser As String
Set db = CurrentDb()
Set rst = db.OpenRecordset("SELECT * FROM MyTable WHERE ((Not (MyTable.DateR) Is Null));", dbOpenDynaset)
If Not rst.BOF And Not rst.EOF Then
rst.MoveFirst
End If
Do Until rst.EOF
strDate = rst!DateR
strUser = rst!UserR
rst.Edit
rst!SEQrec = DLookup("RunSEQ", "Q2", "cstr(DateR) = '" & strDate & "' and cstr(UserR) = '" & strUser & "'")
rst.Update
rst.MoveNext
Loop
rst.Close: Set rst = Nothing
db.Close: Set db = Nothing