VB对access模糊查询,强高手改正

PrivateSubCommand1_Click()DimiAsIntegeri=0DoUntili>=100Adodc1.RecordSource="select*fr... Private Sub Command1_Click()
Dim i As Integer
i = 0
Do Until i >= 100
Adodc1.RecordSource = "select * from Sheet1 where 字段1 = '" & Trim(Text1.Text) & "'"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
List1.AddItem (Adodc1.Recordset.Fields("字段2"))
End If
i = i + 1
Loop
Adodc1.Recordset.MoveNext
End Sub

这是我程序的一段代码,我想让软件搜寻数据库,并返回显示所有符合条件的记录,但是listbox显示的是100条第一条记录,那里写错了呢,请高手指教。
还有,如果我想让软件在搜索至数据库最后的记录时结束循环(前提不知道有多少条记录)应该怎样做
改正一下,Adodc1.Recordset.MoveNext抄错位置了

End If
i = i + 1
Adodc1.Recordset.MoveNext
Loop
End Sub

可是问题依旧没有解决,
展开
 我来答
百度网友68f5c18
2009-07-25 · TA获得超过1730个赞
知道小有建树答主
回答量:792
采纳率:100%
帮助的人:861万
展开全部
应该这么写,把查询语句放最上面,只需要查询一次
由于循环数量为固定100,所以给你换成for循环了
再添加一句是否Eof的检测,否则如果返回的记录小于100条,就会出错

Private Sub Command1_Click()
Dim i As Integer
i = 0
Adodc1.RecordSource = "select * from Sheet1 where 字段1 = '" & Trim(Text1.Text) & "'"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
for i = 1 to 100
List1.AddItem (Adodc1.Recordset.Fields("字段2"))
if i >= Adodc1.Recordset.RecordCount then exit for
Adodc1.Recordset.MoveNext
next i
End If
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式