กระทู้เก่าบอร์ด อ.Yeadram
1,292 7
URL.หัวข้อ /
URL
Count จากผลคูณในตาราง
สวัสดีครับ
ผมมีคำถาม ถามผู้รู้ครับ ซึ่งจะต่อเนื่องจาก กระทู้นี้
http://www.thai-access.com/yeadram_view.php?topic_id=3374
คือ ในตาราง tag จะมี filed ชื่อ Carton No. วึ่งจะรับค่าจาก For 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
ผมมีคำถาม ถามผู้รู้ครับ ซึ่งจะต่อเนื่องจาก กระทู้นี้
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
2 @R15727
แก้ไขบรรทัดแรกสีแดงครับ ตก II ไป ต้องเป็นอย่างนี้ครับ
RED]Dim II As Long: II = 1[/FONT]
RED]Dim II As Long: II = 1[/FONT]
3 @R15728
เอาเข้าไป TT_TT เป็นงี้ครับ
Dim II As Long: II = 1
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
ผมต้องการติดป้ายของกล่องบน 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
ประมาณนี้ครับ
.....................................................................................................
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
ประมาณนี้ครับ
Time: 0.3635s
คุณน่าจะบอกแนวคิดด้วยอ่ะครับ เช่นเท่าที่อ่านคือ คุณต้องการจะนับ 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
ประมาณนี้ครับ