กระทู้เก่าบอร์ด อ.Yeadram
3,858 1
URL.หัวข้อ /
URL
ผมต้องการทำ check box ให้เลือกได้หลายค่า
ผมต้องการทำ check box ให้เลือกได้หลายค่าแล้วเก็บมาในที่เดียวกันโดยมี , คั้นไว้ครับ
ตอนนี้ทำได้โดยทำด้วย กลุ่มตัวเลือก แต่มันเลือกได้ค่าเดียวเอง ทำยังไงให้มันได้หลายค่าอะครับผม
ตอนนี้ทำได้โดยทำด้วย กลุ่มตัวเลือก แต่มันเลือกได้ค่าเดียวเอง ทำยังไงให้มันได้หลายค่าอะครับผม
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
Time: 0.3903s
แต่ถ้าเป็นผม ผมจะไม่ใช้ เพราะมันขัดแย้งกับทฤษฏีทางฐานข้อมูลที่ว่า ในเรคคอร์ดหนึ่งๆ ฟิลด์เดียวต้องมีได้แค่ค่าเดียวเท่านั้น ซึ่งต่อไปอาจมีปัญหาได้เมื่อนำไปใช้ ดังนั้นวิธีที่ผมใช้ก็คือ เราไม่เก็บ , เอาไว้ แต่เราจะเก็บเป็นค่าผลรวมของ 2 ยกกำลัง n (n=0,1,2,...) ซึ่งจะเป็นตัวสะท้อนบอกว่า CheckBox ใดบ้างที่เลือกหรือไม่เลือกไว้
- โดยเราไม่ต้องวาง CheckBox ลงใน OptionBox (เท่าที่อ่าน เหมือนว่าคุณจะทำอย่างนั้น)
- ค่าที่จะเก็บลงในฐานข้อมูลหรือตัวแปร จะหาได้จากผลรวมของค่าที่กำหนดในทางตรรกกะให้แก่แต่ละ CheckBox โดยที่ CheckBox ตัวแรก (CheckBox1) ถือว่ามีค่าเป็น 2ยกกำลัง0 คือ 1, ตัวที่ 2 เป็น 2ยกกำลัง1 คือ 2 , ตัวที่ 3 เป็น 2ยกกำลัง2 คือ 4, ...คือ 8, ...คือ 16, ...
- คำสั่งหาผลรวม (ในตัวแปร sum) คือ
dim sum as integer
if CheckBox1 then sum = sum Or 1
if CheckBox2 then sum = sum Or 2
if CheckBox3 then sum = sum Or 4
if CheckBox4 then sum = sum Or 8
...
...
...
หมายเหตุ :
1. ชื่อของ CheckBox ไปแก้ให้ตรงตามที่คุณตั้งไว้ด้วย
2. เราใช้ประเภทข้อมูล Integer เมื่อ CheckBox มีไม่เกิน 16 ตัว และจะใช้ Long เมื่อมีไม่เกิน 32 ตัว
- เอาค่า sum ไปเก็บลงฟิลด์ตามต้องการ
- เวลาผันค่ากลับมา ก็ใช้คำสั่งนี้
CheckBox1 = ((sum And 1) = 1)
CheckBox2 = ((sum And 2) = 2)
CheckBox3 = ((sum And 4) = 4)
CheckBox4 = ((sum And 8) = 8)
...
...
...
ลองศึกษาดูครับ ว่าผลของการ Or เมื่อเลือก CheckBox แต่ละตัว จะมีค่าเป็นเท่าไหร่ และเมื่อผันกลับมาแล้ว จะสามารถบอกได้ว่า CheckBox ใดได้ถูกเลือกหรือไม่เลือกเอาไว้จริงหรือไม่