vb 这段代码运行出错,请帮忙看一下

来源:百度知道 编辑:UC知道 时间:2024/06/05 12:27:02
Private Sub Command2_Click()
Dim regexpObj As New RegExp
regexpObj.Pattern = "[一-龠]{1,}"
regexpObj.Global = True
Dim matches, match
Set matches = regexpObj.Execute(RichTextBox1.Text)
'Also see to SubMatches Collection.
For Each match In matches
sql = "SELECT 原型,读音,级别,词性,解释 FROM View1 WHERE 原型 LIKE N'%" & match.Value & "%'"
Debug.Print sql '向立即窗口输出SQL语句,可以从立即可以复制到查询分析器中去调试
Set myRecord = myconn.Execute(sql)
If myRecord.RecordCount = 0 Then
Next '运行时这里出错了,提示next没有for,不太明白该怎样修改呢
Else
For i = 0 To myRecord.RecordCount - 1
List1.AddItem myRecord.Fields("原型").Value & " " & myRecord.Fields("解释").Value '将每个表记录显示在列表框中
myRecord.MoveNext
Next i
End If

Set myRecord = Nothing

If myRecord.RecordCount = 0 Then
Next '运行时这里出错了,提示next没有for,不太明白该怎样修改呢
Else

这里错了,IF还没有结束就执行循环了!把这个next放到end if 后面去

没有输出结果是因为你的SQL语句也错了
sql = "SELECT 原型,读音,级别,词性,解释 FROM View1 WHERE 原型 LIKE N'%" & match.Value & "%'"

N和%都是通配符,N是用在ACCESS中,%用在VB中,所以你可以把N去掉

VB6貌似不支持在If块里写Next,你只能修改结构,将For里写个大的If,将不Next的句子写在Then里,Next的情况就要这个If不成立即可

erznlie改的显然是不对的,只看到了表面现象,不符合LZ程序的要求,但我不会贴出改正后的程序的,LZ学程序必须学会自己分析

sql = "SELECT 原型,读音,级别,词性,解释 FROM View1 WHERE 原型 LIKE 'N%" & match.Value & "%'"

是'N不是N'