กระทู้เก่าบอร์ด อ.Yeadram
1,352 4
URL.หัวข้อ /
URL
PP
เรียนถาม ผมต้องการใช้ textbox เป็นตัวค้นหาคำ โดยเขียน code forms
Private Sub tHospName_AfterUpdate()
List2.Visible = True
List2.RowSource = "SELECT T_HospCode.HospCode,
T_HospCode.HospName " & _
" FROM T_HospCode " & _
" WHERE T_HospCode.HospName Like '" & Forms!Form1!tHospName & "*' "
List2.Requery
'List12.Requery
End Sub
ที่ List2 เขียน code
Private Sub List2_AfterUpdate()
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[tHospName] = " & Str(Nz(Me![List2], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
ส่วน List2 เขียน code ที่ propoties row source
SELECT T_HospCode.HospCode, T_HospCode.HospName FROM T_HospCode WHERE (((T_HospCode.HospName) Like forms!Form1!tHospName & "*"));
เมื่อพิมพ์ตัวแรกที่ textbox แล้ว List2 ไม่ค้นหาคำแรกกลับปรากฎข้อมูลทั้งหมด
ที่ต้องการคือพิมพ์ตัวแรกและตัวต่อๆไป List2 จะปรากฎตามข้อความพิมพ์ค้นหา
เมื่อ click ที่ List2 แล้วข้อความที่ค้นหาไปอยู่ใน textbox
ไม่ทราบว่าผมเขียน code ส่วนใดไม่ถูกต้องหรือไม่ครบ รบกวนด้วยครับ ขอคำแนะนำ
Private Sub tHospName_AfterUpdate()
List2.Visible = True
List2.RowSource = "SELECT T_HospCode.HospCode,
T_HospCode.HospName " & _
" FROM T_HospCode " & _
" WHERE T_HospCode.HospName Like '" & Forms!Form1!tHospName & "*' "
List2.Requery
'List12.Requery
End Sub
ที่ List2 เขียน code
Private Sub List2_AfterUpdate()
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[tHospName] = " & Str(Nz(Me![List2], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
ส่วน List2 เขียน code ที่ propoties row source
SELECT T_HospCode.HospCode, T_HospCode.HospName FROM T_HospCode WHERE (((T_HospCode.HospName) Like forms!Form1!tHospName & "*"));
เมื่อพิมพ์ตัวแรกที่ textbox แล้ว List2 ไม่ค้นหาคำแรกกลับปรากฎข้อมูลทั้งหมด
ที่ต้องการคือพิมพ์ตัวแรกและตัวต่อๆไป List2 จะปรากฎตามข้อความพิมพ์ค้นหา
เมื่อ click ที่ List2 แล้วข้อความที่ค้นหาไปอยู่ใน textbox
ไม่ทราบว่าผมเขียน code ส่วนใดไม่ถูกต้องหรือไม่ครบ รบกวนด้วยครับ ขอคำแนะนำ
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R06732
ขอบคุณครับ ได้ผลตามที่ต้องการครับ แต่ใช้แบบ afterupdate ไม่ได้ครับเพราะมันไม่ค้นหาระหว่างพิมพ์ ต้องใช้แบบ onchance ถึงจะเลือกกลุ่มคำที่คล้ายๆกันขึ้นมาให้เลือก
แล้ว Me.Recordset.Clone ทำไมถึงใช้ไม่ได้ครับ ผมไม่เข้าใจ
แล้วหลังจากนี้ไปเราต้องการ click เลือกข้อความเข้าสู่ textbox ต้องทำอย่างไรต่อครับ ลองมั่วหลายทางแล้ว เพราะผมเคยทำแต่แบบ pop up แล้ว click เลือก แต่แบบนี้ผมไม่เคยทำ รบกวนอีกครั้ง ขอบคุณครับ
แล้ว Me.Recordset.Clone ทำไมถึงใช้ไม่ได้ครับ ผมไม่เข้าใจ
แล้วหลังจากนี้ไปเราต้องการ click เลือกข้อความเข้าสู่ textbox ต้องทำอย่างไรต่อครับ ลองมั่วหลายทางแล้ว เพราะผมเคยทำแต่แบบ pop up แล้ว click เลือก แต่แบบนี้ผมไม่เคยทำ รบกวนอีกครั้ง ขอบคุณครับ
3 @R06733
ขอโทษครับที่ถาม เรื่อง click ข้อความที่ต้องการ ผมว่ามองข้ามวิธีการที่ง่ายไป คือ tHospName=List2Column(1)
คราวนี้เหลือแต่การให้ list2 มีความสูงเท่ากับจำนวนข้อความที่เหมือนกันที่นับได้จากตาราง แบบ auto หมายถึง ถ้านับได้7ความสูงก็เท่ากับ7บรรทัด ทำนองนี้
เดี๋ยวต้องไปลองค้นดูวีธีก่อนครับ แล้วค่อยรบกวนทีหลัง
คราวนี้เหลือแต่การให้ list2 มีความสูงเท่ากับจำนวนข้อความที่เหมือนกันที่นับได้จากตาราง แบบ auto หมายถึง ถ้านับได้7ความสูงก็เท่ากับ7บรรทัด ทำนองนี้
เดี๋ยวต้องไปลองค้นดูวีธีก่อนครับ แล้วค่อยรบกวนทีหลัง
4 @R06780
เรียนถามอีกครั้งครับ ตัวอย่าง Code ที่เขียน ใช้ได้กับกรณีที่ค้นหาข้อความที่มีอยู่ในตาราง แต่หากไม่มีเจอมูลในตาราง ใน list ก้อไม่สามารถทำให้ list หายไปได้ ถ้าอย่างนี้ต้องทำอย่างไรต่อครับ
Time: 0.3234s
ให้เขียนแค่นี้พอครับ SELECT TOP 1 T_HospCode.HospCode, T_HospCode.HospName FROM T_HospCode;
* ไม่ใช่วิธีแก้ปัญหาโดยตรง แต่แค่ช่วยให้มันง่ายขึ้น
Private Sub List2_AfterUpdate() ให้เอาออกก่อนครับ อย่าเพิ่งให้มันทำงาน หรืออาจจะแค่เปลี่ยนชื่อมันเป็น
Private Sub List____2_AfterUpdate() มันก็จะไม่ทำงานแล้วครับ
เบรคมันไว้สักครู่ก่อน
** ก็ยังไม่ใช่วิธีแก้ปัญหาโดยตรง แต่ช่วยให้มันง่ายขึ้นในการตรวจสอบ
Private Sub tHospName_AfterUpdate() แก้เป็นอย่างนี้ครับ
Private Sub tHospName_AfterUpdate()
List2.Visible = True
List2.RowSource = "SELECT T_HospCode.HospCode,
T_HospCode.HospName " & _
" FROM T_HospCode " & _
" WHERE T_HospCode.HospName Like '" & trim(tHospName.text) & "*' "
List2.Requery
End Sub
ลองดูใหม่อีกครั้งครับ ได้ผลหรือเปล่า