เพิ่มข้อมูลหลาย ๆ record พร้อมกัน
กระทู้เก่าบอร์ด อ.Yeadram

 2,538   9
URL.หัวข้อ / URL
เพิ่มข้อมูลหลาย ๆ record พร้อมกัน

สวัสดีครับ ผมมีคำถาม คือผมกำลังจะสร้างใบ Tag สำหรับออก order
ซึ่งผมมีข้อมูลดังนี้

ตาราง Tag
.........................................................................
Code               Weight              Lot          Pallet       
.........................................................................
A0001               2.56 Kg.       100413       2              
A0002               1.53 Kg.       080413       5                                          
B0003               2.21 Kg.       100413       2
C0002               1.75 Kg.       090413       1
........................................................................

โดยเงื่อนไข คือ สร้างใบ Tag ออกมาตามจำนวน Pallet คูณ Rate มาตรฐาน
โดยค่ามาตรฐาน = 4
เช่น Code = A0001    มีจำนวน pallet = 2   ดังนั้น จะต้องสร้าง Tag 8 ใบ

เพราะ ฉะนั้น ตามตารางด้านบนเราจะต้องมีใบ Tag ดังนี้
Lot วันที่ 100413 มีจำนวน 16 ใบ Tag
Lot วันที่ 080413 มีจำนวน 20 ใบ Tag
Lot วันที่ 090413 มีจำนวน 4 ใบ Tag

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

1 @R15628
อธิบายได้พอเข้าใจแล้วครับ คือคุณต้องการเอาค่า Pallet จาก ค่า Lot ที่เหมือนกัน มาคูณด้วย 4 ใช่ไหมครับ
แต่คุณต้องการอะไรจากคำถามครับ
2 @R15632
คืออยากจะสร้างใบ tag โดยให้แปรฝันตามจำนวน pallet x4 อะครับ

เช่น ผมจะเลือกใบ tag ของ lot วันที่ 10-Apr-13 มาทั้งหมด ซึ่งจะเท่ากับ
16 tag นั่นคือ 4x4
3 @R15634
หมายความว่า หากคุณเลือกที่ Lot วันที่ 100413 คุณต้องการตารางใหม่ที่มีเรคคอร์ดซ้ำกัน 16 เรคคอร์ด โดยมี A0001 จำนวน 8 เรคคอร์ด และ B003 จำนวน 8 เรคคอร์ด ใช่หรือเปล่า เช่น

Code               Weight              Lot          Pallet       
.........................................................................
A0001               2.56 Kg.       100413       2
A0001               2.56 Kg.       100413       2
A0001               2.56 Kg.       100413       2
A0001               2.56 Kg.       100413       2
A0001               2.56 Kg.       100413       2
A0001               2.56 Kg.       100413       2
A0001               2.56 Kg.       100413       2
A0001               2.56 Kg.       100413       2
B0003               2.21 Kg.       100413       2
B0003               2.21 Kg.       100413       2
B0003               2.21 Kg.       100413       2
B0003               2.21 Kg.       100413       2
B0003               2.21 Kg.       100413       2
B0003               2.21 Kg.       100413       2
B0003               2.21 Kg.       100413       2
B0003               2.21 Kg.       100413       2
.........................................................................

เพื่อนำตารางใหม่นี้ไปใช้ Report เพื่อพิมพ์ป้ายออกมา อย่างนั้นหรืออย่างไรครับ ช่วยยกตัวอย่างหน่อยอ่ะครับ ผมจะรู้ได้ไงอ่ะครับว่าใบ Tag ที่คุณอยากสร้างหน้าตาเป็นไง จะใช้ข้อมูลฟิลด์ไหนบ้าง ไม่อยากมานั่งเดาอย่างนี้ครับ

ผมก็อยากใช้ความรู้เท่าที่มีช่วยทุกคนเท่าที่จะช่วยได้นะครับ แต่บางครั้งผมว่าการตีความคำถามอยากกว่าคำตอบซะอีก
4 @R15637
ขอโทษที่อธิบายไม่ชัดเจนครับ

ผมมีตารางข้อมูลที่คำนวณมาแล้วคือ

ตาราง Tag [ original]
.........................................................................
Code               Weight              Lot          Pallet       
.........................................................................
A0001               2.56 Kg.       100413       2              
A0002               1.53 Kg.       080413       3                                          
B0003               2.21 Kg.       100413       1
C0002               1.75 Kg.       090413       1
........................................................................

โดยเงื่อนไขว่าใบ Tag ของแต่ละ Code จะต้องคูณ ค่ามาตรฐาน คือ 4 ตลอด
แต่จำนวน pallet จะไม่คงที่
ดังนั้นเมื่อจะได้ตารางใหม่ คือ

ตาราง Tag [Final]
.....................................................................................................
Code               Weight              Lot          Pallet        Carton No.
.....................................................................................................
A0001               2.56 Kg.       100413       2               1-8/A0001
A0001               2.56 Kg.       100413       2               2-8/A0001       
A0001               2.56 Kg.       100413       2               3-8/A0001
A0001               2.56 Kg.       100413       2               4-8/A0001
A0001               2.56 Kg.       100413       2               5-8/A0001
A0001               2.56 Kg.       100413       2               6-8/A0001
A0001               2.56 Kg.       100413       2               7-8/A0001
A0001               2.56 Kg.       100413       2               8-8/A0001                 
A0002               1.53 Kg.       080413       3               1-12/A0002   
A0002               1.53 Kg.       080413       3               2-12/A0002
A0002               1.53 Kg.       080413       3               3-12/A0002
A0002               1.53 Kg.       080413       3               4-12/A0002
A0002               1.53 Kg.       080413       3               5-12/A0002
A0002               1.53 Kg.       080413       3               6-12/A0002
A0002               1.53 Kg.       080413       3               7-12/A0002
A0002               1.53 Kg.       080413       3               8-12/A0002
A0002               1.53 Kg.       080413       3               9-12/A0002
A0002               1.53 Kg.       080413       3               10-12/A0002
A0002               1.53 Kg.       080413       3               11-12/A0002
A0002               1.53 Kg.       080413       3               12-12/A0002                                       
B0003               2.21 Kg.       100413       1               1-4/B0003
B0003               2.21 Kg.       100413       1               1-4/B0003
B0003               2.21 Kg.       100413       1               1-4/B0003
B0003               2.21 Kg.       100413       1               1-4/B0003
C0002               1.75 Kg.       090413       1               1-4/C0002
C0002               2.21 Kg.       100413       1               1-4/C0002
C0002               2.21 Kg.       100413       1               1-4/C0002
C0002               2.21 Kg.       100413       1               1-4/C0002
........................................................................

5 @R15638
ตัวอย่างใบ tag ครับ          
          
PRODUCTION GROUP CODE A     
Tag No. 5810              Lot No.100413          
CODE : A0001          
WEIGHT/CARTON :    2.56 Kg.          
WORKER : Wicahi           
Carton No.   1-8/A001          
          

6 @R15644
คำถามก็ยังไม่เคลียร์เท่าไร
1. ช่วงนี้ต้องเป็นอย่างนี้ หรือคุณพิมพ์ผิดครับ
B0003               2.21 Kg.       100413       1               1-4/B0003
B0003               2.21 Kg.       100413       1               1-4/B0003
B0003               2.21 Kg.       100413       1               1-4/B0003
B0003               2.21 Kg.       100413       1               1-4/B0003
C0002               1.75 Kg.       090413       1               1-4/C0002
C0002               2.21 Kg.       100413       1               1-4/C0002
C0002               2.21 Kg.       100413       1               1-4/C0002
C0002               2.21 Kg.       100413       1               1-4/C0002
เป็น
B0003               2.21 Kg.       100413       1               1-4/B0003
B0003               2.21 Kg.       100413       1               2-4/B0003
B0003               2.21 Kg.       100413       1               3-4/B0003
B0003               2.21 Kg.       100413       1               4-4/B0003
C0002               1.75 Kg.       090413       1               1-4/C0002
C0002               2.21 Kg.       100413       1               2-4/C0002
C0002               2.21 Kg.       100413       1               3-4/C0002
C0002               2.21 Kg.       100413       1               4-4/C0002

2. ในใบ Tag ค่า Tag No. และ Worker ผมไม่รู้คุณเอามาจากไหนนะครับ ผมผ่านไปเลยนะครับ

วิธีทำ (สำรองข้อมูลก่อนนะครับเกิดผิดพลาด)
1. สร้างฟอร์มเปล่าขึ้นใหม่ 1 ฟอร์ม
2. สร้างคอนโทรล Textbox สำหรับใส่ค่า Lot ที่ต้องการ สมมุติชื่อ Text1
3. สร้างปุ่ม Button สำหรับกดสร้างตารางใหม่ ใส่โค๊ดลงไปที่ Event > On Click ดังนี้
    If Nz(DLookup("Name", "MsysObjects", "[Name] = 'tb_temp'"), "") <> "" Then
        DoCmd.DeleteObject acTable, "tb_temp"
    End If
    
    Dim I As Integer, SqlCreate As String, rs As DAO.Recordset
        DoCmd.SetWarnings False
        SqlCreate = "CREATE TABLE " & "tb_temp" & "(Code Text, Weight Text, Lot Text, Pallet SHORT, Carton_No Text);"
        DoCmd.RunSQL SqlCreate
            
    If Not IsNull(Me.Text1) Then
        Dim TTT As String
        If Me.Text1 Like "*, *" Then
            TTT = Replace(Me.Text1, ", ", "','")
        ElseIf Me.Text1 Like "*,*" Then
            TTT = Replace(Me.Text1, ",", "','")
        Else
            TTT = Me.Text1
        End If
        Dim sql As String
        sql = "SELECT Code, Weight, Lot, Pallet FROM Table1 WHERE Lot In('" & TTT & "');"
    Else
        sql = "SELECT Code, Weight, Lot, Pallet FROM Table1;"
    End If

    Set rs = CurrentDb.OpenRecordset(sql)
    rs.MoveFirst
    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 & "-" & rs!Pallet * 4 & "/" & rs!Code & "')")
            Next I
    rs.MoveNext
    Loop
    
    rs.Close: Set rs = Nothing
    DoCmd.SetWarnings True


- เมื่อเรียกฟอร์ม คลิ๊กปุ่ม คุณก็จะได้ตารางใหม่ชื่อ tb_temp โดยมีข้อมูลเหมือนกันที่คุณเขียนเอาไว้(หรือเปล่า)
- หากต้องการข้อมูล lot ที่ 100413 ก็ใส่ตัวเลขในช่อง Text1 เป็น 100413 แล้วกดปุ่ม
- หากต้องการข้อมูล lot ที่ 100413 และ 080413 ด้วย ก็ใส่ตัวเลขในช่อง Text1 เป็น 080413,100413 แล้วกดปุ่ม
- หากต้องการข้อมูลทั้งหมด ก็ลบค่าใน Text1 แล้วกดปุ่ม
อะไรประมาณนี้ครับ ปรับใช้ดู
คุณก็จะไดัข้อมูลในตารางชื่อ tb_temp ไปใช้ในการออกแบบหน้าตา Report ต่อไป แต่ตารางจะไม่มีข้อมูล Tag No และ WORKER นะครับ เพราะคุณไม่ได้ให้ข้อมูลไว้ ลองปรับใช้เองดูแล้วกันนะครับ
7 @R15645
เพิ่มเติม: จากโค๊ดผมสมมุติให้ตารางชื่อ Table1 นะครับ
8 @R15646
ข้อมูลที่เป็นฟิลในตารางผมสมมุตขึ้น ที่จริงมันมีอยู่ 23 ฟิลน่ะครับ Lot ๆ หนึ่งมี Tag 5-6 ร้อย tag อ่ะครับถ้าให้ข้อมูลทั้งหมด กลัวว่าจะเยอะเกินไปน่ะครับ

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