กระทู้เก่าบอร์ด อ.Yeadram
1,868 7
URL.หัวข้อ /
URL
สอบถามเรื่องการค้นหาข้อมูลครับ
รบกวนสอบถามครับ ในช่องค้นหา Style No. กับ Buyer ถ้าผมต้องการให้เวลาเราคีย์ตัวอักษร เพียงแค่เราพิมพ์ตัวแรกลงไป มันจะสุ่มคำมาให้เหมือนกับ excel ครับ ไม่ทราบว่าต้องทำยังไงครับ
7 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R24458
ทำตามที่คุณสันติสุขบอกได้แล้วครับ ขอบคุณมากครับ
3 @R24491
รบกวนสอบถามเพิ่มเตฺิมนะครับ ถ้าเราต้องการคีย์ข้อมูลเพิ่มในฟอร์ม โดยการคีย์คือคีย์อักษรตัวแรกก็จะมีการเสนอคำอัตโนมัติมาให้(เหมือนการคีย์ในexcel) โดยที่เราไม่ต้องใช้ combo box เหมือนข้างบน(คือไม่ต้องการให้มี dropdown) สามารถทำได้หรือเปล่าครับ
4 @R24494
พยายามหาข้อมูลตอนนี้ยังไม่ได้เเลยครับ รบกวนด้วยนะครับ
5 @R24503
ตัวโค้ดที่ทำออกมาดูไม่ยุ่งยากเท่าไหร่ แต่กว่าจะทดสอบเพื่อหา event และอัลกอริธึมที่ถูกต้อง (เท่าที่ทดสอบได้) ค่อนข้างยุ่งยากครับ คุณเอาโค้ดนี้ใส่ไว้ในซับฟอร์ม แต่ถ้าเท็กซ์บ็อกซ์ไม่ได้ชื่อ AGENT ก็ให้เปลี่ยนทุกจุดที่ไม่ใช่สีแดงให้หมดด้วยครับ แล้วแทน "ชื่อเทเบิล" ด้วยชื่อที่ถูกต้องด้วยครับ โค้ดนี้จะค้นหาชื่อ AGENT ตัวต่อไปจากฟิลด์ชื่อ AGENT (สีแดง) เช่นเดียวกัน โดยหาคำที่มีอักษรขึ้นต้นเหมือนกับที่ป้อน แล้วแสดงบนเท็กซ์บ็อกซ์ให้
Option Compare Database
Option Explicit
Dim DontSearch As Boolean
Private Sub AGENT_Change()
Dim T As Variant
Dim L As Integer
If DontSearch Then GoTo ExitProc
With Me.AGENT
If Nz(.Text, "") = "" Then GoTo ExitProc
L = Len(.Text)
If .SelStart < L Then GoTo ExitProc
T = DMin("AGENT", "ชื่อเทเบิล", "AGENT > '" + .Text + "' and AGENT like '" + .Text + "*'")
If IsNull(T) Then GoTo ExitProc
.Text = CStr(T)
.SelStart = L
.SelLength = Len(.Text) - L
End With
ExitProc:
Exit Sub
End Sub
Private Sub AGENT_KeyDown(KeyCode As Integer, Shift As Integer)
DontSearch = (KeyCode = vbKeyDelete) Or (KeyCode = vbKeyBack)
End Sub
6 @R24504
เพิ่มเติม : ถ้าอยากได้ค่าเดียวกับบรรทัดก่อนหน้า แค่กด Ctrl-' (single quote) ก็ได้ครับ
7 @R24505
ยังไม่ได้ลองเลยครับ ได้ผลยังไงผมจะมาแจ้งครับ ขอบคุณมากครับ
Time: 0.3711s
select distinct ชื่อฟิลด์ของSTYLE from ชื่อเทเบิล order by ชื่อฟิลด์ของSTYLE
ส่วนของ Buyer ให้ใส่เป็นselect distinct ชื่อฟิลด์ของBUYER from ชื่อเทเบิล order by ชื่อฟิลด์ของBUYER
และทั้งสองตัวให้กำหนด Limit To List property เป็น True/Yes ครับแต่ถ้ามีการเพิ่ม/แก้ไข/ลบเรคอร์ดโดยทำให้ BUYER หรือ STYLE เปลี่ยนแปลงไป ชื่อที่เปลี่ยนนั้นอาจจะไม่ตรงกับที่มีใน combo box แล้ว เราจะต้องสั่งให้ combo box ไปดึงข้อมูลชื่อเหล่านั้นมาใหม่หลังปรับปรุงข้อมูลทุกครั้ง โดยเขียนไว้ใน Form_AfterUpdate และ Form_AfterDelConfirm event procedure เป็น
Private Sub Form_AfterUpdate()
Me.ชื่อcomboboxของStyleNo.Requery
Me.ชื่อcomboboxของBuyer.Requery
End Sub
และ
Private Sub Form_AfterDelConfirm(Status As Integer)
If Status = acDeleteOK then
Me.ชื่อcomboboxของStyleNo.Requery
Me.ชื่อcomboboxของBuyer.Requery
End If
End Sub