เราสามารถสร้างปุ่มCheckboxเพื่อเลือกรายการที่2-3ได้หรือไม่ครับ



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

26 ส.ค. 61 , 13:45:46
อ่าน 641 ครั้ง

ekppom

สวัสดีครับท่านอาจารย์
ผมต้องการทราบว่าเราสามารถสร้างปุ่มCheckboxเพื่อติ๊กเลือกเฉพาะรายการที่2และรายการที่3ให้โหลดบาร์โค้ดลงในช่องรหัสสินค้าพร้อมกันทั้ง2รายการได้หรือไม่ครับ อย่างเช่นลูกค้าซื้อมิรินด้าสีแดงกับสีส้ม แต่ผมจะเลือกได้แค่ที่ละรายการครับ (หากทำเป็นว่าเลือกรายการเสร็จไม่ต้องปิดก็ไม่ได้เพราะมันไม่ไปReccordใหม่ครับ)


 

28 ส.ค. 61 , 19:18:57
ตอบกลับ #1

สันติสุข

โหลดบาร์โค้ดคือเอารหัสสินค้าในฟอร์ม [ค้นหาสินค้า] ไปลงช่องรหัสสินค้าในฟอร์มหลักใช่ไหม ?

ถ้าจะสร้าง Unbound Checkbox ในฟอร์มที่เป็น Continuos Form ต้องใช้เทคนิคพอควร งั้นจะใช้วิธีง่ายๆแต่ไม่ได้มี Checkbox ให้อย่างที่ต้องการนะครับ แค่เลือกบรรทัดสินค้าที่ต้องการโดยคลิกไปที่ไหนก็ได้ในบรรทัดนั้นเพื่อให้เป็นเรคอร์ดปัจจุบัน พอคลิกปุ่ม [เลือก] ก็ให้รันโค้ดใน Click event procedure ของปุ่ม [เลือก] เป็น

Forms("ชื่อฟอร์มหลัก").SetFocus
DoCmd.RunCommand acCmdRecordsGoToNew
Forms("ชื่อฟอร์มหลัก")!ชื่อเท็กซ์บ็อกซ์ของช่องรหัสสินค้าในฟอร์มหลัก = Me.ชื่อเท็กซ์บ็อกซ์ของช่องรหัสสินค้าในฟอร์มค้นหาสินค้า
' ถ้ามีหลายช่องที่ต้องการใส่ค่าให้ ก็เลียนแบบเพิ่มเติมตรงนี้ได้เลย
' ถ้าต้องการให้ใส่ค่าต่างๆในฟอร์มหลักเสร็จแล้วบันทึกข้อมูล ก็ให้สั่ง DoCmd.RunCommand acCmdSaveRecord เพิ่มอีกบรรทัด
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

29 ส.ค. 61 , 15:54:55
ตอบกลับ #2

ekppom

อ.สันติสุขครับ โค้ดสำหรับโหลดข้อมูลผมทำได้แล้วคือ
Forms("Sale").subformsale.Form.Item = Me.Item
DoCmd.Close
Forms("Sale").subformsale.SetFocus
DoCmd.GoToRecord , , acNewRec
DoCmd.GoToControl "Item"
เพียงแค่ต้องการให้มันโหลดได้ทีละ2รายการขึ้นไปครับ เพราะปกติพอโหลดบาร์โค้ดเสร็จก็จะสั่งให้ปิดฟอร์มค้นหา(หากไม่ปิดฟอร์มมันไม่ขึ้นเรคคอร์ดใหม่ให้)
หากมีสินค้า2รายการขึ้นไป ผมก็ต้องเปิดฟอร์มค้นหาอีกครับ (ซึ่งหากเป็นไปได้ก็ไม่อยากเปิดฟอร์มค้นหาสินค้าหลายๆครั้ง)
แต่หากว่าการสร้างมันซับซ้อนมากเกินไป อ.สันติสุขไม่ต้องบอกก็ได้ครับ ผมคงทำไม่ได้หรอก ผมได้แค่โค้ดพื้นฐานเองครับ

ขอบคุณอาจารย์มากนะครับที่ให้คำแนะนำ

 

29 ส.ค. 61 , 16:19:40
ตอบกลับ #3

สันติสุข

กำหนด Modal property ของฟอร์มเป็น True/Yes เอาไว้หรือเปล่า เลยต้องมาปิดฟอร์ม[ค้นหา]ทุกครั้ง ให้กำหนดเป็น False/No นะครับ
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

29 ส.ค. 61 , 16:59:36
ตอบกลับ #4

ekppom

กำหนดเป็นNOครับ

 

29 ส.ค. 61 , 18:03:11
ตอบกลับ #5

สันติสุข

ลองใช้โค้ดนี้ดูว่าจะทำงานให้ไหม โดยเลือกรายการแรกในหน้า[ค้นหา] > คลิกปุ่ม [เลือก] > เลือกรายการอื่นในหน้า [ค้นหา] > คลิกปุ่ม [เลือก] อีกที

Forms("Sale").SetFocus
Forms("Sale").subformsale.SetFocus
on error resume next
DoCmd.GoToRecord , , acNewRec
on error goto 0
Forms("Sale").subformsale.Form.Item = Me.Item

ถ้ามี error อะไรหรืออาการเป็นอย่างไร แจ้งมาด้วยครับ
« แก้ไขครั้งสุดท้าย: 29 ส.ค. 61 , 18:06:52 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

29 ส.ค. 61 , 21:30:25
ตอบกลับ #6

ekppom

ผมลองนำโค้ดที่อ.ให้ไปใช้แล้วปรากฏว่าไม่ไปเรคคอร์ดใหม่ครับ


 

29 ส.ค. 61 , 21:37:55
ตอบกลับ #7

ekppom

อ.สันติสุขครับ ผมทำได้แล้ว ขอบคุณท่านอ.มากนะครับที่ให้คำแนะนำ
แก้ไขโค้ดนิดเดียวครับ

Forms("Sale").subformsale.Form.Item = Me.Item
Forms("Sale").SetFocus
Forms("Sale").subformsale.SetFocus
On Error Resume Next
DoCmd.GoToRecord , , acNewRec

 


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