กระทู้เก่าบอร์ด อ.Yeadram
2,104 2
URL.หัวข้อ /
URL
Comboboxกับค่าในตาราง
รบกวนพี่ๆด้วยครับ
คือผมอยากทราบว่า Combobox มันสามารถเลือกแล้วเก็บค่าที่เลือกลงในตารางได้ไหมครับมีวิธีการอย่างไร
ผมเคยใช้ option Button แล้วมันเก็บค่าเป็นตัวเลขลงในตารางได้ครับโดยผ่าน Property ชื่อ ControlSource แต่ผมลองกับ Combobox แล้วไม่ได้ครับ รบกวนด้วยครับ
คือผมอยากทราบว่า Combobox มันสามารถเลือกแล้วเก็บค่าที่เลือกลงในตารางได้ไหมครับมีวิธีการอย่างไร
ผมเคยใช้ option Button แล้วมันเก็บค่าเป็นตัวเลขลงในตารางได้ครับโดยผ่าน Property ชื่อ ControlSource แต่ผมลองกับ Combobox แล้วไม่ได้ครับ รบกวนด้วยครับ
2 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R07473
ขอบคุณมากน่ะครับ
Time: 0.2345s
เมื่อเลือกแล้ว สามารถนำข้อมูลที่ได้ ไปจัดเก็บได้
ในขณะที่เลื่อนเรคคอร์ดของฟอร์มไปที่เรคคอร์ดเก่า คอมโบยังสามารถทำหน้าที่แสดงผลข้อมูลได้ด้วย
ดังนั้นทำความเข้าใจหลักการพื้นๆ มันก่อน มันจะต้องเกี่ยวข้องกับข้อมูล 3 อย่างคือ
1 ข้อมูลที่จะนำมาแสดง (กรณีเลื่อนเรคคอร์ดไปที่เรคคอร์ดเก่าๆ)
2 ข้อมูลที่จะนำไปเก็บ (กรณีกำลังจะบันทึกข้อมูลของเรคคอร์ดใหม่)
3 ข้อมูลที่จะนำมาให้เลือก คุณสามารถหารายการมาให้เลือกได้จากที่ต่างๆ ไม่ว่าจะเป็นกลุ่มข้อมูลในตาราง กลุ่มข้อมูลในคิวรี่ หรือกลุ่มข้อมูลที่เขียนขึ้นเอง
ข้อมูลในข้อ 1 กับข้อ 2 เราอ้างด้วยชื่อฟิลด์ ซึ่งก็คือฟิลด์ของแหล่งข้อมูลฟอร์ม ถ้าคุณสร้างฟอร์มโดยใช้แหล่งข้อมูลจากตาราง มันก็คือชื่อฟิลด์ใดฟิลด์หนึ่งของตารางนั้นๆ
ถ้าคุณสร้างฟอร์มโดยใช้คิวรี่ มันก็คือชื่อฟิลด์ของคิวรี่
ข้อมูลในข้อ 1 กับข้อ 2 มันคือชื่อฟิลด์เดียวกันนั่นแหละครับ
สมมติว่าคุณผูกมันไว้กับฟิลด์ชื่อ field1 ของตารางชื่อ Table1 ถ้าบนฟอร์มของคุณถูกสั่งเลื่อนเรคคอร์ดไปที่เรคคอร์ดเก่า (มีข้อมูลอยู่ก่อนแล้ว) คอมโบตัวนี้ ก็จะไปดึงข้อมูลของ field1 ในเรคคอร์ดเก่ามาแสดง เรียกการทำงานหรือหน้าที่นี้ว่า "หน้าที่ในการแสดงผล" มันจะไม่ไปเอาฟิลด์อื่นมาแสดงแน่ๆ
และหลักการตรงกันข้าม คือเมื่อฟอร์มถูกสั่งให้เลื่อนเรคคอร์ดไปที่เรคคอร์ดใหม่ ที่กำลังจะรอรับการป้อนข้อมูล คอมโบตัวเดียวกันนี้ก็จะทำหน้าที่คอยรับข้อมูล เพื่อนำไปจัดเก็บในฟิลด์ field1 ของ table1 ครับ มันจะไม่นำไปจัดเก็บในฟิลด์อื่นแน่ๆ
properties ของคอมโบที่เกี่ยวข้องกับข้อมูล มี 3 ตัวหลักๆ คือ
1 Control source ให้คุณอ้างชื่อฟิลด์ของแหล่งข้อมูลเข้าไป ในตัวอย่างนี้ก็คือให้ระบุว่า field1
2 Row source คือกลุ่มข้อมูลที่คุณจะนำมาให้ผู้ใช้ได้เลือก อาจจะระบุเป็นชื่อตาราง หรือชื่อคิวรี่ หรือสายอักขระ SQL หรือเขียนเองก็ได้ ข้อมูลในส่วนนี้ ไม่จำเป็นต้องมาจาก table1 หรือไม่จำเป็นต้องมาจาก field1 คือจะนำมันมาจากไหนก็ได้ หรืออาจเขียนเองก็ได้ เช่นถ้าคุณเขียนสดๆ ลงไปว่า "ชาย"; "หญิง"; "กะเทย"
คุณก็จะเห็นตัวเลือกตอนคอมโบทำงาน เป็นสามรายการดังที่เขียน
3 Row source Type คือชนิดของกลุ่มข้อมูลในข้อ 2 เราต้องระบุบอกมันเสมอว่าข้อมูลที่เราหามาในข้อ 2 นั้น เป็นชนิดไหน
- ถ้าข้อมูลในข้อ 2 เรานำมาจาก ตารางหรือคิวรี่ เราต้องระบุคุณสมบัติในข้อนี้ว่า "Table/Query" จะระบุเป็นอย่างอื่นไม่ได้
- ถ้าข้อมูลในข้อ 2 คุณเขียนสดอย่างที่ตัวอย่างผมเขียนไป ("ชาย"; "หญิง"; "กะเทย") คุณต้องระบุคุณสมบัติในข้อนี้ว่า "Value List" จะระบุเป็นอย่างอื่นไม่ได้
ปัญหาที่ไม่สามารถจัดเก็บข้อมูลได้ ส่วนใหญ่มือใหม่ๆ มักจะไม่เข้าใจเรื่องของ จำนวนคอลัมน์ของคอมโบ ต้องสัมพันธ์กันกับหมายเลขคอลัมน์ที่จะให้คอมโบเอาไปเก็บ กล่าวคือ บางคนทำคอมโบ 3 คอลัมน์ แต่ไม่รู้ว่า เวลาเลือกข้อมูลแล้ว จะเอาคอลัมน์ไปเก็บลงตาราง หรือบางทีก็ไม่รู้ว่า ต้องไปตั้งค่าตรงไหนเพื่อจะสั่งให้มันเอาคอลัมน์ที่ 2 ไปเก็บ (อยากบอกมันเหมือนกันว่า อย่าเก็บคอลัมน์อื่นนะ ให้เก็บคอลัมน์2 แต่ไม่รู้จะไปบอก ไปตั้งค่าตรงไหน)
หรือบางที มัวแต่ไปพะวงกับการแสดงผลในตาราง กลัวมันไม่สวย ดูยาก ให้มันเก็บรหัส มันก็เก็บแต่รหัสอย่างเดียว มันไม่เห็นชื่อในตาราง เลยหงุดหงิดใจไปเอง ซึ่งแท้ที่จริงแล้ว ไม่ควรไปสนใจมันเลย
ข้อแนะนำสำหรับผู้ไม่เข้าใจคอมโบ
1 ขอแนะนำให้ออกแบบตารางให้เรียบร้อยก่อนค่อยทำฟอร์ม
2 ขอแนะนำให้โหลดตัวอย่างของคนอื่นมาดูเยอะๆ ดูเล่นๆ ไป อาจจะไม่มีตัวอย่างตรงๆ หรอกครับ แต่ให้เข้าใจว่า แทบ ทุกๆ ตัวอย่างงานของคนอื่นๆ มีคอมโบแทบทุกไฟล์ เพราะคอมโบถือเป็นคอนโทรลพื้นฐานที่เหมาะกับงานหลายด้านมากๆ ดังนั้นจะกล้าจะพูดได้เลยว่า ถ้าเป็นตัวอย่าง Access แล้วล่ะก็ คุณจะเห็นตัวอย่างการใช้ คอมโบในนั้นแน่ๆ ไม่ต่ำกว่า 90เปอร์เซนต์ของทุกๆ ไฟล์ตัวอย่าง มีคอมโบครับ
3 อย่าใจร้อนด่วนได้ครับ เพราะคอนโทรลตัวนี้พลิกแพลงได้หลายอย่าง บางทีอาจต้องยอมให้ วิซาร์ดมันพาสร้างไป เราก็ทำตามๆ มันไปก่อน แม้จะยังไม่เข้าใจดีนักในวันนี้ ลองให้ วิซาร์ดมันพาไปสัก 2 -3 ตัวโดยแต่ละตัวก็อาจจะพลิกแพลงไปในแนวทางต่างๆ ถ้ามันทำงานได้ผล ค่อยลองไปดูคุณสมบัติต่างๆ ของคอมโบตัวนั้นๆ (ตัวที่วิซาร์ดสร้างให้) ดูว่า มันตั้งค่าอย่างไรบ้าง ถึงออกมาเป็นอย่างนั้นได้
โชคดีครับ
(ผมใกล้จะตกงานแล้วล่ะ ถ้าผมไม่มีอะไรทำตอนตกงาน ผมอาจจะหารับจ๊อบด้วยการเปิดสอนเรื่องพวกนี้ก็ได้นะ อิอิ แต่ผมจนครับ ไม่มีโน๊ตบุคส์และไม่มีรถเป็นของตัวเอง เดินทางลำบาก เลยยังไม่คิดจะทำตอนนี้ รอตกงานจริงๆ เข้าตาจนจริงๆ ก่อนก็แล้วกัน อิอิ)