กระทู้เก่าบอร์ด อ.Yeadram
2,945 5
URL.หัวข้อ /
URL
เกี่ยวกับ combo box
มีปัญหาเกี่ยวกับ combo box 2 ข้อ ดังนี้
1. เปลี่ยนสี column head ใน combo box ยังไงครับ
2. เวลาเลือกข้อมูลใน combo box แล้ว ทำยังไงให้โชว์ข้อมูลฟิลด์อื่น ด้วยครับ เพราะ combobox จะโชว์เฉพาะฟิลด์ที่เป็น bound column
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
2 @R06970
อ้างถึง
ข้อ2 คอมโบ จะโชว์ทั้งหมดไม่ได้ครับ
วิธีใกล้เคียง : สร้าง textbox ไว้ข้างๆ คอมโบ และเขียนคำสั่งใส่ในเหตุการณ์เมื่อเลือกของคอมโบ สั่งการให้ textbox = combo.column(2)
สมมุติไม่ใช้textbox แต่ใช้ combo แทนแล้ว ถ้าcombo แรกมีข้อมูลเราสามารถบังคับให้ต้องใส่ข้อมูลในcombo ที่2ได้หรือเปล่าครับ
ข้อ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
แต่ที่คุณถามเพิ่ม อ่านๆ ดู แล้วเหมือนว่าจะบังคับให้คนป้อน มันเรื่องคนละเรื่องกันนะครับ
ของคุณจะบังคับให้ 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 ก็ได้ จะเห็นความแตกต่างเองครับ
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
ขอบคุณครับเดี๋ยวลองไปใช้ดูครับ
if isnull(combo2) or combo2="" then
msgbox "โปรดระบุข้อมูลใน คอมโบ2"
end if
end if
ขอบคุณครับเดี๋ยวลองไปใช้ดูครับ
Time: 0.2096s
ไม่มีความสามารถเพียงพอที่จะตอบสนองความต้องการของคุณได้ครับ มันมีข้อจำกัดครับ อย่าลืมว่า access เป็นตัวจัดการฐานข้อมูลซึ่งเขาร่นรูป ลดขนาด จากโปรแกรมระดับใหญ่ๆ เช่น MS SQL, MySQL ฯลฯ ลงมาให้เป็นตัวที่กระชับทำงานง่าย
ดังนั้นคุณสมบัติทั้งในส่วน back-end และ front-end จึงมีข้อจำกัดอยู่บ้าง
ข้อ1 เปลี่ยนสีไม่ได้ครับ หรือถ้ามีคนทำได้ คงเป็นเรื่องสิ้นเปลืองโดยใช่เหตุ
วิธีใกล้เคียง : ต้องสรรหาคอนโทรลตัวอื่นๆ (โหลดฟรีมา หรือซื้อมาเพิ่ม)
ข้อ2 คอมโบ จะโชว์ทั้งหมดไม่ได้ครับ
วิธีใกล้เคียง : สร้าง textbox ไว้ข้างๆ คอมโบ และเขียนคำสั่งใส่ในเหตุการณ์เมื่อเลือกของคอมโบ สั่งการให้ textbox = combo.column(2)