VB6.0中LISTBOX的查找问题

现有一ListL,需要在Textbox1中输入关键字,点击COMMAND1后需要如下效果:
若有该关键字,则将该关键字的第一项选中
若无该关键字,则弹出MSGBOX "查无此项"
希望各位大虾们帮帮忙

Private Sub Command1_Click() '搜索
Dim strtemp As String '定义变量为字符串型,
Dim a As String '定义变量为字符串型
Dim i As Integer '定义变量为整值
strtemp = Trim(Text1.Text) ' 初始变量Strtemp 等于文本框中的内容 ,也就是要搜索的内容
For i = 0 To List1.ListCount - 1 '循环 列表框里的内容
a = List1.List(i) '把每项内容赋值给变量A
If InStr(a, strtemp) > 0 Then '判断,当在列表项中找到搜索的关键字,那么
List1.Selected(i) = True '该项被选中
Exit For '结束循环
End If '结束判断
Next i
If i = List1.ListCount Then MsgBox ("查无此项")'判断,如果 i的值等于列表框的项目时,也就是说列表框中每项都被搜索了 还是没有,则弹出提示对话框
End Sub

不懂追问
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-09
OS_ID 是关键字段?
修改应该是这样的:根据 OS_ID 找到对应的记录,修改其他字段
Adodc4.RecordSource = "SELECT * FROM TF_POS_Z where OS_ID='" & Trim(Text2.Text) & "'"
if Adodc4.Recordset.EOF then
Adodc4.Recordset.addnew
Adodc4.Recordset.Fields("OS_ID") = Trim(Text2.Text)'如果没有找到,根据输入新增一条记录
end if
'其他字段,新增和修改一样
Adodc4.Recordset.Fields("OS_NO") = Trim(DataCombo1.Text)
Adodc4.Recordset.Fields("NEWAZZZZZ") = Trim(Text1.Text)
Adodc4.Recordset.Fields("ITM") = Trim(DataCombo2)
Adodc4.Recordset.Update
第2个回答  2011-12-29
在COMMAND1的点击事件
定义整形变量 index
定义整形变量 i
设置index初始值为-1
循环i从0到ListL的listBox.items.count-1
判断Textbox1的文本如果等于listBox.items(i)的文本则
设置index的值为i
退出循环
循环结束
判断如果index 不等于-1则
设置listBox.selectedIndex为index
否则
弹出MSGBOX "查无此项"
第3个回答  2011-12-29
这个最好用API
第4个回答  2011-12-29
列表框 你说的不详细追问

补充了问题 希望帮帮忙

追答

若有该关键字,则将该关键字的第一项选中
你这个是让该关键字处于选中状态吧,如果是的话很好写。假设控件名为 list1
双击COMMAND1 在CLICK事件中输入
for i=0 to list1.listcount -1
if text1.text=list1.list(i) then
list1.Selected(i)=true
exit for
end if
next i
if i= list1.listcount then msgbox "查无此项"
===========
楼下 剑小风 的答案比较全面,特殊和一般情况都考虑到了,我写的是针对你的作业题的,剑小风应该是程序员或者程序爱好者,如果追求完美你可以采纳他的答案,如果就是做作业或者考VB二级,我的足够对付你老师了。

本回答被提问者采纳
相似回答
大家正在搜