กระทู้เก่าบอร์ด อ.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;
หรือว่าผมมาผิดทางยังไงรบกวนชี้แนะด้วยครับ
คือว่า ระบบที่ผมเขียนไว้ เก็บ 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
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
หลายขั้นตอนหน่อยแต่ผลลัพโอเคแล้ว ขอบคุณมากครับ
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
Do Until xRec.EOF
...........
Loop
BOF begen of file
EOF end of file
Time: 0.3926s
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 คุณก็ต้องหาค่าหรือตัวแปรที่เก็บค่าเอามาแทนตำแหน่งนี้ อีกอย่าง โค้ดนี้ไม่ได้ทดสอบ อาจมีผิดพลาดอะไรก็ได้ คุณต้องเอาไปทดสอบเองครับ