จะสั่งปริ้นท์จากรหัสสินค้าโดยนับจำนวนสินค้ายังไงคะ


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

08 ก.พ. 62 , 02:15:56
อ่าน 1528 ครั้ง

BARBIEKA

  • สมาชิกไท.Access
  • กระทู้: 2

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

คำถามงงๆหน่อยนะคะคือต้องการปริ้นท์สติ๊กเกอร์บาร์โค๊ด โดยในแผ่นนั้นจะมี รายละเอียดสินค้า บาร์โค๊ด และต้องการให้ปริ้นท์ว่า รหัสสินค้านี้เป็นสินค้าที่ลำดับเท่าใหร่ อย่างเช่น รหัสสินค้านี้มี 100 ชิ้น ต้องการปริ้นท์โดยมีตัวเลขกำกับที่ 1-100 คะ
ตอนนี้สร้างตารางและฟอร์มง่ายๆให้กรอกข้อมูลและสั่งปริ้นท์ได้แล้วคะ แต่ยังทำให้ปริ้นท์ลำดับสินค้าไม่ได้คะ

ขอบคุณคะะ

 

08 ก.พ. 62 , 09:54:11
ตอบกลับ #1

OddyWriter

ใส่ฟิลด์ลำดับสินค้าเข้าไปในสิ่งที่จะพิมพ์ด้วยครับ และแนะนำว่าใช้คำสั่ง Label เพื่อสร้างสติ๊กเกอร์ครับ

รับจ้างทำฐานข้อมูล สอนวางระบบฐานข้อมูล Excel/ Access/ VBA Excel/ VBA Access/ SQL Server/ Database Design
แม้กระทั่งดูดวง ก็ติดต่อได้นะครับ
 
โพสต์นี้ได้รับคำขอบคุณจาก: BARBIEKA

09 ก.พ. 62 , 09:06:10
ตอบกลับ #2

ศรี-นคร

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

เทคนิคที่ผมจะแนะนำวันนี้คือ เราจะมีการสร้าง Temp Table วางคู่แทรกเข้าไปในข้อมูลที่ต้องการสร้าง Label ในตัวอย่างนี้คือ LabelRun



จำนวน Label จะเกิดนั้นมีตามจำนวน record ที่เรา Add เข้าไปใน Table : LabelRun และใน Table ก็จะมีฟิลด์ที่ชื่อ LabelNo



ส่วนที่หน้าจอสำหรับ User นั้นเราก็สร้าง textbox เพื่อให้ผู้ใช้กรอกจำนวนที่ต้องการพิมพ์ได้ตามต้องการ



และใส่ Code เข้าใน CommandButton โดยอาศัยคำสั่ง For..Next
Private Sub Command0_Click()
    Dim rst1 As DAO.Recordset
   
    Dim vNo As Long
   
    Dim dbs As Database
    Set dbs = CurrentDb()
   
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE * FROM LabelRun"
    DoCmd.SetWarnings True
   
    Set rst1 = dbs.OpenRecordset("SELECT * FROM LabelRun")
   
    For vNo = 1 To Me.Text1 Step 1
        rst1.AddNew
        rst1!LabelNo = vNo
        rst1.Update
    Next
   
    rst1.Close
    Set rst1 = Nothing
   
    DoCmd.OpenReport "Report1", acViewPreview
   
End Sub

และสิ่งที่ต้องทำเพิ่มเติมคือเปิด DAO library ขื้นมาใช้ด้วย เนื่องจากมีการอ้างอิงเพื่อใช้ Recordset โดยเลือกจากเมนู Tools-->Reference



เมื่อลองคลิ๊กดูก็จะได้รายงานออกมาหน้าตามประมาณนี้ครับ
ไม่ต้องแปลกใจนะครับ ถ้าเปิดออกมาแล้วจะเห็นแค่ Label อันเดียว ซึ่งมันเป็น Defualt ของ Access ที่จะให้โชว์หน้าแรก ส่วนหน้าอื่นต้องเลื่อนเอา แต่ถ้าเราสั่งพิมพ์มันก็จะพิมพ์ออกมาทุกหน้า

ส่วนรูปที่ผมแสดงให้เห็นนี้คือผมเลือกให้มีการแสดงหน้า Report หลายหน้าพร้อมกันโดยเลือกจากเมนูข้างบนครับ



ขอขอบคุณความรู้เกี่ยวกับ MS-Access จาก อ. สุภาพ ไชยา
ก็ฝากไว้เผื่อจะสามารถช่วยให้มิตรรักแฟนเพลงท่านหนึ่งท่านใด ก้าวพ้นปัญหาที่กำลังแก้อยู่ได้เร็วขึ้น


« แก้ไขครั้งสุดท้าย: 09 ก.พ. 62 , 09:20:56 โดย ศรี-นคร »

 
โพสต์นี้ได้รับคำขอบคุณจาก: BARBIEKA

09 ก.พ. 62 , 16:42:46
ตอบกลับ #3

BARBIEKA

  • สมาชิกไท.Access
  • กระทู้: 2

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

ขอบคุณมากๆค่ะ จะลองทำนะคะ  :love: :love:

 

11 ก.พ. 62 , 18:57:39
ตอบกลับ #4

ศรี-นคร

ไม่ทราบว่าผมตรงคำถามที่ต้องการหรือเปล่า เมื่อย้อนกลับไปดูเหมือนว่าจะผิดไปหน่อยหนึ่ง
« แก้ไขครั้งสุดท้าย: 12 ก.พ. 62 , 09:02:38 โดย ศรี-นคร »

 


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


 

Sitemap 1 2 3 4 5