บอร์ดเรียนรู้ Access สำหรับคนไทย
Thai Access Webboard => ห้อง MS Access => ข้อความที่เริ่มโดย: BARBIEKA ที่ 08 ก.พ. 62 , 02:15:56
-
คำถามงงๆหน่อยนะคะคือต้องการปริ้นท์สติ๊กเกอร์บาร์โค๊ด โดยในแผ่นนั้นจะมี รายละเอียดสินค้า บาร์โค๊ด และต้องการให้ปริ้นท์ว่า รหัสสินค้านี้เป็นสินค้าที่ลำดับเท่าใหร่ อย่างเช่น รหัสสินค้านี้มี 100 ชิ้น ต้องการปริ้นท์โดยมีตัวเลขกำกับที่ 1-100 คะ
ตอนนี้สร้างตารางและฟอร์มง่ายๆให้กรอกข้อมูลและสั่งปริ้นท์ได้แล้วคะ แต่ยังทำให้ปริ้นท์ลำดับสินค้าไม่ได้คะ
ขอบคุณคะะ
-
ใส่ฟิลด์ลำดับสินค้าเข้าไปในสิ่งที่จะพิมพ์ด้วยครับ และแนะนำว่าใช้คำสั่ง Label เพื่อสร้างสติ๊กเกอร์ครับ
(https://www.thai-access.com/tiupld/images/pml6px-99718f.png)
-
ขออนุญาตร่วมตอบข้อสงสัยครับ
เทคนิคทีผมใช้อยู่นี้จำไม่ได้ว่า เอาจากตัวอย่างจากเว็บต่างประเทศหรือของ อ. สุภาพ ไชยา แต่อย่างไรเสียคือขอนำมาเล่าสู่กันฟังนะครับ
หลักการเดิมมีอยู่ว่า ถ้าเราต้องการเอาข้อมูลที่ต้องการพิมพ์ออกทางรายงานนั้น โดยปกติคือจะเป็นข้อมูลที่เราเลือกเท่านั้นครับ และเป็นเพียงหน้า Report 1 ชุดเท่านั้น
แต่โจทย์นี้คือต้องการพิมพ์ข้อมูลต้นขั้วเดิมที่เลือก แต่ต้องการสำเนาตามจำนวนที่ต้องการพร้อมรันเลขที่ด้วย
เทคนิคที่ผมจะแนะนำวันนี้คือ เราจะมีการสร้าง Temp Table วางคู่แทรกเข้าไปในข้อมูลที่ต้องการสร้าง Label ในตัวอย่างนี้คือ LabelRun
(https://www.thai-access.com/tiupld/images/pmmy05-2d13c2.jpg)
จำนวน Label จะเกิดนั้นมีตามจำนวน record ที่เรา Add เข้าไปใน Table : LabelRun และใน Table ก็จะมีฟิลด์ที่ชื่อ LabelNo
(https://www.thai-access.com/tiupld/images/pmmy86-24fd4b.jpg)
ส่วนที่หน้าจอสำหรับ User นั้นเราก็สร้าง textbox เพื่อให้ผู้ใช้กรอกจำนวนที่ต้องการพิมพ์ได้ตามต้องการ
(https://www.thai-access.com/tiupld/images/pmmyc2-091dc1.jpg)
และใส่ 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
(https://www.thai-access.com/tiupld/images/pmmylk-aaac84.jpg)
เมื่อลองคลิ๊กดูก็จะได้รายงานออกมาหน้าตามประมาณนี้ครับ
ไม่ต้องแปลกใจนะครับ ถ้าเปิดออกมาแล้วจะเห็นแค่ Label อันเดียว ซึ่งมันเป็น Defualt ของ Access ที่จะให้โชว์หน้าแรก ส่วนหน้าอื่นต้องเลื่อนเอา แต่ถ้าเราสั่งพิมพ์มันก็จะพิมพ์ออกมาทุกหน้า
ส่วนรูปที่ผมแสดงให้เห็นนี้คือผมเลือกให้มีการแสดงหน้า Report หลายหน้าพร้อมกันโดยเลือกจากเมนูข้างบนครับ
(https://www.thai-access.com/tiupld/images/pmmynj-2da47a.jpg)
ขอขอบคุณความรู้เกี่ยวกับ MS-Access จาก อ. สุภาพ ไชยา
ก็ฝากไว้เผื่อจะสามารถช่วยให้มิตรรักแฟนเพลงท่านหนึ่งท่านใด ก้าวพ้นปัญหาที่กำลังแก้อยู่ได้เร็วขึ้น
-
ขอบคุณมากๆค่ะ จะลองทำนะคะ :love: :love:
-
ไม่ทราบว่าผมตรงคำถามที่ต้องการหรือเปล่า เมื่อย้อนกลับไปดูเหมือนว่าจะผิดไปหน่อยหนึ่ง