สอบถามการค้นหา last record ประจำเดือน
กระทู้เก่าบอร์ด อ.Yeadram

 889   3
URL.หัวข้อ / URL
สอบถามการค้นหา last record ประจำเดือน

สวัสดีครับ ขอรบกวนสอบถามพี่เพื่อชี้แนะแนวทางด้วยครับ
คือว่า ระบบที่ผมเขียนไว้ เก็บ Id แบบนี้ครับ 5910/001 (ปีเดือน/รันนิ่ง)
ตอนนี้พยายามจะทำให้ระบบ เป็น autoruning แต่อยากสอบถามว่า มีวิธีเช็คใน หน้า form มั้ยว่า เดือนที่เรากำลังจะเพิ่มเอกสารนี้ ล่าสุดใช้เลขที่อะไรอยู่
เช่น ขณะนี้เดือน 11 เราต้องการไปเพิ่มเอกสารของเดือน9 รหัสก็จะต้องเป็น 5909/xxx ทีนี้ สามตัวหลังเนี่ยต้องไปเช็คจากใน table ว่า รันถึงเลขอะไรแล้วเดือน 9 แล้วก็ +1 เพื่อเป็นเลขที่เอกสารฉบับถัดไปครับ
ผมลองใช้ code query ได้แล้วแต่ไม่รู้จะเอามา query หน้าform ยังไง
ประมาณนี้ครับ

SELECT TOP 1 TaxTable.* FROM TaxTable WHERE (((TaxTable.MonthTax)=Month(DateDoc))) ORDER BY TaxTable.DocID desc;

หรือว่าผมมาผิดทางยังไงรบกวนชี้แนะด้วยครับ

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

1 @R22693
อ่านแล้วไม่ค่อยเข้าใจว่าหน้าฟอร์มของคุณเป็นยังไง มีขั้นตอนการ operate อย่างไร เอาเป็นว่าถ้าต้องการเลขลำดับถัดไป ก็ให้ใช้โค้ดข้างล่างนี้ โดยคาดว่าค่าที่เก็บของ ID จะมีเครื่องหมาย "/" ติดอยู่ในนั้นด้วย แล้วก็ใช้โค้ดนี้ใส่ไว้ในปุ่มสักตัวที่กดแล้วจะแปะค่าต่อไปลงบนเท็กบ็อกซ์บนหน้าฟอร์ม (หรือจะแปะค่าตอนไหนก็แล้วแต่คุณจะออกแบบระบบ)

Private ชื่อปุ่ม_Click( )

Dim MaxID as string
Dim NextID as string
Dim NextRN as integer

MaxID = Nz(DMax("ฟิลด์ที่เก็บปีเดือนที่รันนิ่ง","TaxTable","MonthTax=" + Month(DateDoc)),YYMM + "/000")

NextRN = Val(Right$(MaxID,3)) + 1

NextID = Left$(MaxID,5) + Format$(NextRN,"000")

Me.ชื่อเท็กบ็อกซ์บนฟอร์ม = NextID

End Sub

โดยที่ YYMM คุณก็ต้องหาค่าหรือตัวแปรที่เก็บค่าเอามาแทนตำแหน่งนี้ อีกอย่าง โค้ดนี้ไม่ได้ทดสอบ อาจมีผิดพลาดอะไรก็ได้ คุณต้องเอาไปทดสอบเองครับ
2 @R22708
ขออภัยครับไม่ได้เข้ามาตอบเลยวุ่นมาก แต่แก้ปัญหาด้วยวิธีนี้แทนครับ
หลายขั้นตอนหน่อยแต่ผลลัพโอเคแล้ว ขอบคุณมากครับ
            MonthID = Month(No6_date)
            yearID = Year(No6_date)
            yearID = Int(yearID) + 543
            yearID = Right(yearID, 2)
            strCriteria = No6_date.value
            idrun = DMax("IDrunning", "TaxTable", "monthTax=" & MonthID)
            idrun = Int(idrun) + 1
               If Int(idrun) < 10 Then
               idrun = "00" + idrun
               ElseIf idrun < 100 Then
               idrun = "0" + idrun
               End If
              
               If Int(MonthID) < 10 Then
               MonthID = "0" + MonthID
               End If
            DocID.value = yearID + MonthID + "/" + idrun
3 @R22715
Set xRec = DBEngine(0)(0).OpenRecordset("SELECT TOP 1 TaxTable.* FROM TaxTable WHERE (((TaxTable.MonthTax)=Month(DateDoc))) ORDER BY TaxTable.DocID desc)
Do Until xRec.EOF
        ...........
          Loop

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