Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ ระบบฐานข้อมูล Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ การเขียนโปรแกรม Access : เป็นได้ทั้งตัวเก็บฐานข้อมูล และตัวจัดการฐานข้อมูล Thai Access : บอร์ดเสริมการเรียนรู้ Access ด้วยภาษาไทย
@ เขียนคำถามให้ผู้ตอบเข้าใจ จะช่วยให้ผู้ถามได้คำตอบที่ชัดเจนและรวดเร็ว / @ คุณได้คำตอบที่ต้องการแล้วหรือยัง? กลับมาอีกสักครั้งเพื่อแจ้งผู้ตอบ.
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
ความงงกับคำถามระดับ 5 ตามมาตราริกเตอร์
Private Sub Form_BeforeUpdate(Cancel As Integer)Const MaxRec = 26Dim DB As DAO.DatabaseDim RS As DAO.RecordsetDim MaxDTStr As String ' วันเวลาล่าสุดของกลุ่มเรคอร์ด (แต่เป็น string เพื่อลดความยาวของโค้ด)Dim MaxA As Long ' ค่าสูงสุดของ A ในกลุ่มเรคอร์ดล่าสุดDim NeedA As Boolean ' TRUE = ระบบต้องการค่า A บนฟอร์ม NeedA = False Set DB = CurrentDb Set RS = DB.OpenRecordset("select max(DT) as MaxDT from TB") If IsNull(RS!MaxDT) Then NeedA = True Else ' #2.2 MaxDTStr = Format$(RS!MaxDT, "dd/mmm/yyyy hh:nn:ss") Set RS = DB.OpenRecordset("select count(*) as N from TB where DT = #" & MaxDTStr & "#") If RS!N = 0 Or RS!N >= MaxRec Then NeedA = True End If If NeedA Then ' #3.1 If Nz(Me.A, 0) = 0 Then MsgBox "ป้อน A ด้วย" Me.A.SetFocus Cancel = True: Exit Sub End If If Not DB.OpenRecordset("select A from TB where A = " & CStr(Me.A)).EOF Then ' #4.1 MsgBox "A ซ้ำของเดิม" Me.A.SetFocus Cancel = True: Exit Sub End If Me.DT = Now() ' #2.1 Else ' #3.2 Me.A = DB.OpenRecordset("select max(A) as MaxA from TB where DT = #" & MaxDTStr & "#")!MaxA Do Me.A = Me.A + 1 Loop Until DB.OpenRecordset("select A from TB where A = " & CStr(Me.A)).EOF ' #4.2 Me.DT = CDate(MaxDTStr) ' #2.2 End IfEnd Sub
คือประมาณว่าท่านจะทำระบบกึ่งออโต้ลำดับที่ใช้ใหมครับ นั่นคือลำดับที่อันแรกท่านจะใส่เอง สมมุติใส่ 11156 พอรายการต่อๆมาให้มัน +1 ออโต้ไปเรื่อยๆเลยจนครบ 25รายการโดยที่ท่านไม่ต้องมานั่งใส่เลขเองใช้หรือไม่ครับ (25รายการถ้านับรวม 11156ด้วยจะจบที่ 11180นะ)แล้วเมื่อมันครบ25แล้วล่ะ อยากให้มัน... แล้วแนวการใส่เลขคุณเป็นอย่างไร คือประมาณว่าชุดที่1 เริ่ม 11156-11180ชุดที่2 เริ่ม 22221-22245ชุดที่3 เริ่ม 20001-20025 < ลำดับแทนที่ดันไปแทรกกลางชุด1-2 หรือไม่
ไม่ต้องแทรกครับ ขึ้นเป็นลำดับใหม่ไปเลยครับ แล้วเมื่อครบ 25 แล้วอยยากให้มันขึ้นป้อนเลขใหม่เพื่อต่อจากเลขชุดที่แล้ว ครับ
อ้างจาก: Nick_1234 ที่ 25 มิ.ย. 62 , 09:34:06ไม่ต้องแทรกครับ ขึ้นเป็นลำดับใหม่ไปเลยครับ แล้วเมื่อครบ 25 แล้วอยยากให้มันขึ้นป้อนเลขใหม่เพื่อต่อจากเลขชุดที่แล้ว ครับ กล่าวคือแนวคิดนั้นจะทำเป็นระบบกึ่งออโต้ทั้งหมดโดยที่ สามตัวหน้าเป็นเลขชุด+สองตัวหลัง 01-25 เช่นท่านใส่ 00101 = 00101-25 จนครบ25ออโต้รันต่อที่ 00201 = 00201-25 จนครบ25ออโต้รันต่อที่ 00301 = 00301-...ท่านเปลี่ยนมา 10101 = 10101-25 จนครบ25ออโต้รันต่อที่ 10201 = 10201-...ใช้แนวคิดแบบนี้ใหมครับนี่
จนถึงตอนนี้ ผมก็ยังคงงงอยู่สรุปแล้วคือคุณต้องการอย่างไรแน่ครับแบบนี้หรือเปล่า1,2,3,...,24,25,1,2,3,...,24,25...หรือ0001,0002,0003,...,0024,0025,1001,1002,1003,...,1024,1025,...ขอชัดๆ หน่อยครับงงระดับ 10 แล้ว