ทำ combobox หรือ Textbox แบบพิเศษ
กระทู้เก่าบอร์ด อ.Yeadram

 2,042   3
URL.หัวข้อ / URL
ทำ combobox หรือ Textbox แบบพิเศษ


ที่ comboxbox ความต้องการคือต้องการทำให้เหมือนกับปุ่ม search ของ Google ที่อยู่ใน IE เช่น พอเรากดปุ่ม A ใน combobox ก็จะขึ้นข้อมูลที่มีตัวอักษร A พร้อมกับ ขยายข้อมูลแสดงให้เราเห็นประมาณซัก 10 บรรทัด (หรือตามที่เราต้องการ) บวกกับเอาข้อมูลที่ค้นเจอตัวแรกมาแสดงบนcombobox ด้วย หลังจากนั้น พอเรากดปุ่ม N ต่อ ก็จะขึ้นข้อมูลที่มีตัวอักษร AN พร้อมกับ Refresh ข้อมูลที่กำลังแสดงอยู่และนำข้อมูลที่ค้นหาเจอเป็นตัวแรกมาแสดงบน combobox ด้วย เป็นต้น

เคยถามที่กระทู้ http://www.thai-access.com/yeadram_view.php?topic_id=1581 แล้ว แต่ยังไม่ใช้ล่ะครับ ต้องการมากกว่านั้นหน่อย

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

1 @R08708
น่าสนใจนะ... เราลองมาพัฒนาร่วมกันดูไหม ให้คนใน web นี้ที่สนใจ ช่วยกันทำ
ถือเป็นกิจกรรมที่ทำร่วมกันของคนใน web ผลงานที่ออกมาก็ยกให้เป็นของ web นี้ไป... เอาไว้แจกจ่ายเพื่อนสมาชิกให้ download... ดีไหมครับคุณyeadram
...เอาไปตั้งเป็น topic ใหม่ก็ได้ หรือแล้วแต่ช่องทางใดที่สะดวก
2 @R08709
สิ่งที่ต้องมี
1 form
2 controlต่างๆ ที่จะแสดงข้อมูล เฉพาะรายการแรก (ทำเป็น single form ดีกว่า)
3 textbox รอการค้น ชื่อ txSrch ( unbound )
4 listbox ชื่อ lstSrch
- unbound
- no visible
- 1 column
- rowsoucr type = "table/query"



-จับเหตุการณ์ keydown ของ txSrch
ถ้า keycode = 27 .............สั่งล้าง textbox , requery , exit sub
ถ้า len(txsrch) < 1 then exit sub

sql = "select ...from table1 where .... like '" & txSrch & "*'" เอาฟิลด์เดียว

rs.open sql....

select case นับจำนวนรายการ

ถ้าเป็น 1
- ให้ฟอร์ม กรองข้อมูลเอาตัวนี้ (เอา Rs(0) ไปเป็นเงื่อนไข)
- แล้วสั่ง requery

ถ้ามากกว่า 1
- เอา sql ไปเป็น rowsource ของ listbox
- แล้วสั่ง lstSrch.visible=true
- สั่ง listbox ขยายความสูง lstSrch.move .............. , (allX * lstH) + defaultH
โดยที่ allX คือจำนวนเรคคอร์ดทั้งหมดที่หาเจอ
lstH คือความสูงโดยประมาณของแต่ละรายการใน listbox
defaultH คือ ความสูงพื้นฐานของ listbox
- สั่งฟอร์มกรองข้อมูล ด้วย RS(0) ****** ไม่ต้องเลื่อนเรคคอร์ด
end select

rs.close
exit sub

ต่อไปเขียนโค้ดใน listbox มีสอง Procedure
- ตอนคลิ๊ก (เพื่อให้ผู้ใช้คลิ๊กจากรายการ) แล้วอย่าลืมจบด้วย visibled = false ด้วยล่ะ
- ตอนผู้ใช้ keydown ด้วย keycode=27 (คือผู้ใช้กด ESC นั่นเอง)


แนวทางครับ
เร็วหรือช้าขึ้นอยู่กับ แรม, การ์ดจอ, ซีพียู และสำคัญยิ่งกว่าคือ (อ.สันติสุขเรียกว่าอะไรนะ จำไม่ได้) ระบบของฐานข้อมูลว่ามีดัชนี มีความเสถียรภาพดีแค่ไหน

โชคดีครับ (จริงๆ ผมว่าผมเคยทำตัวอย่างคล้ายๆ กันนี้ อัพแจกไปทีแล้วนะครับ)
3 @R08713
แสดงว่าใน combobox ไม่สามารถทำได้ใช่ไหมครับ เลยต้องทำเป็น Textbox แทน
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3251s