如何在使用組合框輸入時從數據庫表中搜索字段?我使用這個代碼,但它不工作的方式我想:組合框中的VB6搜索選項
Private Sub Combo1_Change()
Dim sValue As String
sValue = Combo1.Text
If Combo1.Text <> "" Then
Set rsFList = New ADODB.Recordset
Combo1.Refresh
rsFList.Open "SELECT name FROM goods WHERE name LIKE '%" & sValue & " %' ORDER BY name", StCon, adOpenStatic, adLockOptimistic
If rsFList.RecordCount > 0 Then
Do While Not rsFList.EOF
Combo1.AddItem rsFList.Fields("name").Value
rsFList.MoveNext
Loop
End If
Combo1.Text = sValue
End If
End Sub
的我想要的一個例子:
在數據庫表中,我有這個數據列name
:
- AAA
- AAB
- AAC
- AAD 個
- 後
- AGH
- BGR
- BFS
所以,當我鍵入一個,應該更新列表和顯示這樣的數據:
- AAA
- AAB
- aac
- AAD
- 後
- AGH
再次,如果我輸入第二個字母,AA,該列表將更新爲:
- AAA
- AAB
- aac
- aad
...等等。
我該怎麼辦?
這個它會從一個呼叫名選擇,如果我在這個表調用ID有另一列,我想,但我怎麼能做到這一點在文本框中的值。
rsFList.Open "SELECT ID, name FROM goods WHERE name LIKE '%" & sValue & " %' ORDER BY name", StCon, adOpenStatic, adLockOptimistic
一個例子:
- ID - 名稱
- 1 - AAA
- 2 - ABD
- 3 - ABC
在組合框它應該只示出名稱,但是當我選擇ID會在文本框中顯示,怎麼辦呢?
你的問題會更容易回答,如果不是「它不工作,因爲我想」,你描述的到底發生了什麼,你想發生什麼。我看到的一個問題是,當您修改組合框列表時,文本將被清除,我認爲這是爲什麼您要在方法結尾處設置文本。但是,這會導致事件再次觸發,並且您將得到堆棧空間錯誤。 – jac