การรันเลขสัญญา


0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

22 ธ.ค. 62 , 13:29:31
อ่าน 3571 ครั้ง

Tawat

การรันเลขสัญญา
« เมื่อ: 22 ธ.ค. 62 , 13:29:31 »
ผมรบกวนที่แนะนำการ ทำรันเลขสัญญา
เลข   หมวดสัญญา
1   สัญญาเช่า
2   สัญญาจ้างทำของ
3   สัญญาซื้อ-ขาย
4   สัญญาบริการ
5   สัญญารักษาความลับ

ถ้าผมเลือกดร๊อฟดาวน์  สัญญาเช่า เมื่อกดปุ่ม รัน ก็ให้แสดงผล C-2019-10001....
ถ้าผมเลือกดร๊อฟดาวน์  สัญญาจ้างทำของ เมื่อกดปุ่ม รัน ก็ให้แสดงผล C-2019-20001....

อธิบายเพิ่ม
C  ตัวย่อ contract
2019 ปี
1ถึง5 เป็นเลขหมดสัญญา
0001 คือเลขรันไปเลื่อยๆ

รบกวนท่านผู้รู้ด้วยนะครับ ผมขอรับแนะนำแบบไม่ซับซ้อนมากนะครับเผื่อผมงง /ขอบคุณครับ


 

23 ธ.ค. 62 , 10:48:28
ตอบกลับ #1

PNR

: การรันเลขสัญญา
« ตอบกลับ #1 เมื่อ: 23 ธ.ค. 62 , 10:48:28 »
ลองดูไม่รู้ต้องการแบบนี้ไหม

ขั้นตอนที่ 1 สร้างคิวรี่ ตั้งชื่อว่า QryMax
โค้ด
โค๊ด: [Select]
SELECT Table1.RunC, Nz(Max(Right([runrun],4)),0) AS [Max]
FROM Table1
GROUP BY Table1.RunC;

ขั้นตอนที่ 2 สร้างคิวรี่ ตั้งชื่อว่า QryMaxInt
โค้ด
โค๊ด: [Select]
SELECT qryMax.RunC, Val([Max]) AS MaxInt
FROM qryMax;

ที่ฟอร์ม ปุ่ม Run ใส่โค้ด
โค๊ด: [Select]
Private Sub cmdRun_Click()
Dim intMax As Integer
    If Not IsNull(Me.RunC) Then
    Me.Dirty = False
    intMax = Nz(DLookup("MaxInt", "QryMaxInt", "RunC = " & Me.RunC & ""))
    intMax = intMax + 1
    Me.runrun = "C-" & Year(Date) & "-" & RunC & Right("0000" & intMax, 4)
    End If
End Sub
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tawat, thanapol.w, pattan0013

03 ม.ค. 63 , 13:50:26
ตอบกลับ #2

Tawat

: การรันเลขสัญญา
« ตอบกลับ #2 เมื่อ: 03 ม.ค. 63 , 13:50:26 »
ขอขอบคุณ PNR มากๆครับ ที่ให้คำแนะนำและบอกวิธีทำจนสามารถทำได้ในที่สุด ผมขอรบกวนอีกนิดเดียว เมื่อเปลี่ยนปี 2020 การรันเลขสี่หลักท้ายก็ให้เริ่มต้นใหม่ทุกปี โดยให้เริ่มแบบนี้ครับ
ตย.กดเลือกดร๊อฟดาวน์
เลขหมวดสัญญา
1   สัญญาเช่า
runเลข C-2020-10001...สิ้นปี
2   สัญญาจ้างทำของ
runเลขC-2020-20001...สิ้นปี
3   สัญญาซื้อ-ขาย
runเลขC-2020-30001...สิ้นปี
4   สัญญาบริการ
runเลขC-2020-40001...สิ้นปี
5   สัญญารักษาความลับ
runเลขC-2020-50001...สิ้นปี



 

05 ม.ค. 63 , 15:03:07
ตอบกลับ #3

PNR

: การรันเลขสัญญา
« ตอบกลับ #3 เมื่อ: 05 ม.ค. 63 , 15:03:07 »
เพิ่มเติมนิดหน่อยจากอันเดิมครับ คือเราจะสร้าง Field YearStamp ไว้ในตารางด้วย โดยเราจะกำหนด Year(Now()) เพื่อเก็บปีไว้ทุกครั้ง ถ้าโปรแกรมตรวจเจอว่า ข้อมูล Field YearStamp นั้น เป็นปีใหม่และยังไม่มีเลขที่รันลำดับมาก่อน (มาจาก QryMaxInt) ก็จะเริ่มนับใหม่ทันที

โดยผมจะเพิ่ม textbox ชื่อ txtYears ไว้เก็บปีปัจจุบันไว้อ้างอิงกับข้อมูลเดิมที่มีอยู่ใน Query MaxInt
โค้ดประมาณนี้

โค๊ด: [Select]
Private Sub cmdRun_Click()
Dim intMax As Integer

    If Not IsNull(Me.RunC) Then
    Me.txtYears = Year(Now())
    Me.Dirty = False
    intMax = Nz(DLookup("MaxInt", "QryMaxInt", "RunC = " & Me.RunC & " And  Yearstamp = '" & Me.txtYears & "'"))
    intMax = intMax + 1
    Me.runrun = "C-" & Year(Date) & "-" & RunC & Right("0000" & intMax, 4)
    End If   
End Sub

ส่วนในคิวรี่ชื่อ QryMax กับ QryMaxInt ก็นำฟิลล์ YearStamp ใส่ลงไปด้วยเพื่อใช้ในการแยกข้อมูลระหว่างปีเก่าและปีใหม่ครับ
« แก้ไขครั้งสุดท้าย: 05 ม.ค. 63 , 15:39:17 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tawat, pattan0013


บอร์ดเรียนรู้ Access สำหรับคนไทย


 

Sitemap 1 2 3 4 5