Count จากผลคูณในตาราง
กระทู้เก่าบอร์ด อ.Yeadram

 1,292   7
URL.หัวข้อ / URL
Count จากผลคูณในตาราง

สวัสดีครับ
ผมมีคำถาม ถามผู้รู้ครับ ซึ่งจะต่อเนื่องจาก กระทู้นี้

http://www.thai-access.com/yeadram_view.php?topic_id=3374

คือ ในตาราง tag จะมี filed ชื่อ Carton No. วึ่งจะรับค่าจาก For i

For I = 1 To rs!Pallet * 4

                    DoCmd.RunSQL ("INSERT INTO [tb_temp] VALUES ('" & rs!Code & "','" & rs!Weight & "','" & rs!Lot & _

                    "','" & rs!Pallet & "','" & I & "-" & rs!Pallet * 4 & "/" & rs!Code & "')")

            Next I

เดิมทีจาก code ด้านบน จะได้ข้อมูลใส่ใน filde = Carton No. คือ หมายเลข carton ของแต่ละ code-จำนวนของ carton ของแต่ละ code/Code
ที่นี่ผมมี คำถามเพิ่มเติมครับ ว่าถ้าต้องการให้ filed ชื่อ Carton No. รับข้อมูลตามนี้ หมายเลข Carton ของแต่ละ pallet / หมายเลข pallet ของแต่ละ Code - Code เช่น

ตาราง Tag [Final]
.....................................................................................................
Code               Weight              Lot          Pallet        Carton No.
.....................................................................................................
A0001               2.56 Kg.       100413       2               1/1-A0001
A0001               2.56 Kg.       100413       2               2/1-A0001       
A0001               2.56 Kg.       100413       2               3/1-A0001
A0001               2.56 Kg.       100413       2               4/1-A0001
A0001               2.56 Kg.       100413       2               1/2-A0001
A0001               2.56 Kg.       100413       2               2/2-A0001
A0001               2.56 Kg.       100413       2               3/2-A0001
A0001               2.56 Kg.       100413       2               4/2-A0001                  

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

1 @R15726
@ ปกรณ์
คุณน่าจะบอกแนวคิดด้วยอ่ะครับ เช่นเท่าที่อ่านคือ คุณต้องการจะนับ 1,2,3,... ทุกๆ 4 เรคคอร์ดใช่หรือไม่ครับ หากใช่เพิ่มและแก้ไขโค๊ดตามข้อความสีแดงอ่ะครับ

Dim As Long: II = 1
    Do Until rs.EOF
            For I = 1 To rs!Pallet * 4
                    DoCmd.RunSQL ("INSERT INTO [tb_temp] VALUES ('" & rs!Code & "','" & rs!Weight & "','" & rs!Lot & _
                    "','" & rs!Pallet & "','" & I & "/" & II & "-" & rs!Code & "')")
                    If I Mod 4 = 0 Then II = II + 1
            Next I
    rs.MoveNext
    Loop


ประมาณนี้ครับ
2 @R15727
แก้ไขบรรทัดแรกสีแดงครับ ตก II ไป ต้องเป็นอย่างนี้ครับ
RED]Dim II As Long: II = 1[/FONT]
3 @R15728
เอาเข้าไป TT_TT เป็นงี้ครับ

Dim II As Long: II = 1
4 @R15729
คืองี้ครับ
ผมต้องการติดป้ายของกล่องบน pallet ว่ากล่องไหนเป็นกล่องที่ 1,2,3,4
และบอกด้วยว่าเป็น pallet ที่เท่าไหร่ของ Code นั้นๆ

เช่น Code A001 มีทั้ง 2 Pallet ที่ต้องการหาคือ
เบอร์กล่อง 1 2 3 4 บน pallet ที่ 1 ของ A001
เบอร์กล่อง 1 2 3 4 บน pallet ที่ 2 ของ A001





5 @R15730
อ่ะ! พอดีสังเกตุเห็น เลขหน้าคุณก็จะให้นับ 1-4 แล้วเริ่มใหม่หรือเปล่าครับ งั้นก็หลักการเดียวกัน แก้เป็น

Dim II As Long, III As Integer: II = 1: III = 1   
    Do Until rs.EOF
            For I = 1 To rs!Pallet * 4
                    DoCmd.RunSQL ("INSERT INTO [tb_temp] VALUES ('" & rs!Code & "','" & rs!Weight & "','" & rs!Lot & _
                    "','" & rs!Pallet & "','" & III & "/" & II & "-" & rs!Code & "')")
                    If I Mod 4 = 0 Then II = II + 1
                    If III Mod 4 = 0 Then III = 0
                    III = III + 1
            Next I
    rs.MoveNext
    Loop
6 @R15731
เยี่ยมครับ
ขอบคุณครับผม
7 @R15732
เสริมให้อีกนิดนะครับ เพราะคุณยกตัวอย่างมาแค่ Code เดียว คือหากคุณรันโค๊ดหลายโค๊ด กรณีนี้เลขหลังเครื่องหมาย / จะนับไปเรื่อยๆ เช่น
.....................................................................................................
Code               Weight              Lot          Pallet        Carton No.
.....................................................................................................
A0001               2.56 Kg.       100413       2               1/1-A0001
A0001               2.56 Kg.       100413       2               2/1-A0001       
A0001               2.56 Kg.       100413       2               3/1-A0001
A0001               2.56 Kg.       100413       2               4/1-A0001
A0001               2.56 Kg.       100413       2               1/2-A0001
A0001               2.56 Kg.       100413       2               2/2-A0001
A0001               2.56 Kg.       100413       2               3/2-A0001
A0001               2.56 Kg.       100413       2               4/2-A0001
A0002               2.56 Kg.       100413       2               1/3-A0001
A0002               2.56 Kg.       100413       2               2/3-A0001       
A0002               2.56 Kg.       100413       2               3/3-A0001
A0002               2.56 Kg.       100413       2               4/3-A0001
A0002               2.56 Kg.       100413       2               1/4-A0001
A0002               2.56 Kg.       100413       2               2/4-A0001
A0002               2.56 Kg.       100413       2               3/4-A0001
A0002               2.56 Kg.       100413       2               4/4-A0001

- แต่หากคุณต้องการให้นับที่ 1 ใหม่เมื่อหรัส Code เปลี่ยน
.....................................................................................................
Code               Weight              Lot          Pallet        Carton No.
.....................................................................................................
A0001               2.56 Kg.       100413       2               1/1-A0001
A0001               2.56 Kg.       100413       2               2/1-A0001       
A0001               2.56 Kg.       100413       2               3/1-A0001
A0001               2.56 Kg.       100413       2               4/1-A0001
A0001               2.56 Kg.       100413       2               1/2-A0001
A0001               2.56 Kg.       100413       2               2/2-A0001
A0001               2.56 Kg.       100413       2               3/2-A0001
A0001               2.56 Kg.       100413       2               4/2-A0001
A0002               2.56 Kg.       100413       2               1/1-A0001
A0002               2.56 Kg.       100413       2               2/1-A0001       
A0002               2.56 Kg.       100413       2               3/1-A0001
A0002               2.56 Kg.       100413       2               4/1-A0001
A0002               2.56 Kg.       100413       2               1/2-A0001
A0002               2.56 Kg.       100413       2               2/2-A0001
A0002               2.56 Kg.       100413       2               3/2-A0001
A0002               2.56 Kg.       100413       2               4/2-A0001

- ก็ให้เพิ่มบรรทัดสีแดงนี้เข้าไประหว่างคำสั่ง Do...Loop กับ For...Next

Dim II As Long, III As Integer: II = 1: III = 1    
    Do Until rs.EOF
       II = 1
            For I = 1 To rs!Pallet * 4
                    DoCmd.RunSQL ("INSERT INTO [tb_temp] VALUES ('" & rs!Code & "','" & rs!Weight & "','" & rs!Lot & _
                    "','" & rs!Pallet & "','" & III & "/" & II & "-" & rs!Code & "')")
                    If I Mod 4 = 0 Then II = II + 1
                    If III Mod 4 = 0 Then III = 0
                    III = III + 1
            Next I
    rs.MoveNext
    Loop

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