เกี่ยวกับ combo box
กระทู้เก่าบอร์ด อ.Yeadram

 2,955   5
URL.หัวข้อ / URL
เกี่ยวกับ combo box

มีปัญหาเกี่ยวกับ combo box 2 ข้อ ดังนี้

1. เปลี่ยนสี column head ใน combo box ยังไงครับ

2. เวลาเลือกข้อมูลใน combo box แล้ว ทำยังไงให้โชว์ข้อมูลฟิลด์อื่น ด้วยครับ เพราะ combobox จะโชว์เฉพาะฟิลด์ที่เป็น bound column

5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R06963
Combobox ใน Access
ไม่มีความสามารถเพียงพอที่จะตอบสนองความต้องการของคุณได้ครับ มันมีข้อจำกัดครับ อย่าลืมว่า access เป็นตัวจัดการฐานข้อมูลซึ่งเขาร่นรูป ลดขนาด จากโปรแกรมระดับใหญ่ๆ เช่น MS SQL, MySQL ฯลฯ   ลงมาให้เป็นตัวที่กระชับทำงานง่าย
    ดังนั้นคุณสมบัติทั้งในส่วน back-end และ front-end จึงมีข้อจำกัดอยู่บ้าง

ข้อ1 เปลี่ยนสีไม่ได้ครับ หรือถ้ามีคนทำได้ คงเป็นเรื่องสิ้นเปลืองโดยใช่เหตุ
     วิธีใกล้เคียง : ต้องสรรหาคอนโทรลตัวอื่นๆ (โหลดฟรีมา หรือซื้อมาเพิ่ม)
ข้อ2 คอมโบ จะโชว์ทั้งหมดไม่ได้ครับ
      วิธีใกล้เคียง : สร้าง textbox ไว้ข้างๆ คอมโบ และเขียนคำสั่งใส่ในเหตุการณ์เมื่อเลือกของคอมโบ    สั่งการให้ textbox = combo.column(2)
2 @R06970
อ้างถึง
ข้อ2 คอมโบ จะโชว์ทั้งหมดไม่ได้ครับ
      วิธีใกล้เคียง : สร้าง textbox ไว้ข้างๆ คอมโบ และเขียนคำสั่งใส่ในเหตุการณ์เมื่อเลือกของคอมโบ    สั่งการให้ textbox = combo.column(2)

สมมุติไม่ใช้textbox แต่ใช้ combo แทนแล้ว ถ้าcombo แรกมีข้อมูลเราสามารถบังคับให้ต้องใส่ข้อมูลในcombo ที่2ได้หรือเปล่าครับ
3 @R06974
กรณีที่ผมแนะวิธีใกล้เคียงไป หมายถึงให้ โค้ดเติมข้อมูลลง textbox ให้อัตโนมัติ ซึ่งมันจะทำงานทันทีที่มีการเลือกข้อมูลในคอมโบที่1

แต่ที่คุณถามเพิ่ม อ่านๆ ดู แล้วเหมือนว่าจะบังคับให้คนป้อน มันเรื่องคนละเรื่องกันนะครับ
ของคุณจะบังคับให้ user กรอกข้อมูลในคอมโบที่ 2 ต้องเรื่องยาวครับ ต้องดูว่าคุณจะตรวจสอบในเหตุการณ์ไหน ว่าเขาใส่หรือยังไม่ใส่
- เมือเลือกคอมโบแรก
- ก่อนจะบันทึกข้อมูลทั้งเรคคอร์ด
- ก่อนจะเลื่อนเรคคอร์ด
- ก่อนที่จะปิดฟอร์ม
การเลือกเหตุการณ์ที่จะบังคับ user ต้องเลือกให้ดี ต้องยืดหยุ่น พอสมควร
"ผมรู้น่า ว่าต้องใส่คอมโบ2 แต่ตะกี้ผมเลือกคอมโบ1 ผิดค่า ผมขอเลือกใหม่ก่อนได้ไหมจะรีบขึ้นมาดัก มาเตือนให้รำคาญทำไมเนี่ย คนเราผิดไม่ได้หรือไง"
"ผมรู้แล้วน่า ว่าต้องใส่คอมโบ2 แต่ผมขอใส่ข้อมูลใน textbox ตัวอื่นก่อนได้ไหมเพิ่งจะได้ข้อมูลมาเดี๋ยวลืมซะก่อน จะรีบเตือนไปไหน เสียงดังลั่นเลย"


if not isnull(combo1) or combo1<>"" then
    if isnull(combo2) or combo2="" then
       msgbox "โปรดระบุข้อมูลใน คอมโบ2"
     end if
end if
4 @R06983
ขอตอบเฉพาะข้อ 2 นะครับ ไม่แน่ใจว่าตอบตรงประเด็นหรือเปล่า
1. เมื่อสร้าง Combobox แล้วให้ click ขวาที่ตัว Combobox แล้วเลือก Property ซึ่งจะปรากฎหน้าต่าง Property ของ Combobox ขึ้นมา
2. เลือก tab Data แล้วมองไปที่บรรทัดที่ 4 จะพบคำว่า Rowsource
3. ให้ click ด้านขวาสุดของบรรทัดนี้ (อยู่นอกเส้นบรรทัด) จะปรากฎหน้ต่าง Query ขึ้น
4. เลือก field ที่ต้องการจะให้แสดงใน Combobox ทั้งนี้ขอให้เลือก field ที่ต้องการจะ bound เป็น field แรก เพื่อตัดปัญหาการ bound ผิดพลาด จากนั้นก็ Save query
5. กลับมาที่ Property ของ Combobox เลือก tab Format
6. บรรทัดที่ 3 จะเห็น Column Count ให้แก้ตัวเลขเป็นจำนวนเท่ากับจำนวน field ที่เราเลือกไว้
7. บรรทัดที่ 5 จะเห็น Column widths ให้เราใส่ค่าของความกว้างของแต่ละ field ที่ต้องการให้ปรากฎเช่น ต้องการแสดง 3 field field ละ 1 cm. ก็ใส่ 1,1,1
8. บรรทัดที่ 7 จะพบคำว่า List Width ก็ให้ใส่ค่าตัวเลขขนาดความกว้างของรายการที่เราต้องการเช่น จากข้อ 7 เรามี 3 field รวมกัน = 3 cm. เราก็ใส่ 3 แต่จะใส่ 2.5 หรือว่า 4 ก็ได้ จะเห็นความแตกต่างเองครับ
5 @R07002
if not isnull(combo1) or combo1<>"" then
    if isnull(combo2) or combo2="" then
       msgbox "โปรดระบุข้อมูลใน คอมโบ2"
     end if
end if
ขอบคุณครับเดี๋ยวลองไปใช้ดูครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3212s