注册 登录
编程论坛 VB6论坛

急啊,求助(跳出无效使用null的错误)

hwh123 发布于 2012-06-25 16:28, 1001 次点击
Private Sub List1_Click()

Text5.Text = List1.Text
 Dim rs As ADODB.Recordset
   sqlStr = "select * from data1 where 时间 LIKE '%" & Text5.Text & "%'"
    Set rs = ExeCuteSQL(sqlStr, msgText)
   If rs.RecordCount = 0 Then
        MsgBox "没有查找满足条件的数据!", vbExclamation, "提示"
        MSFlexGrid1.Rows = 1
       ' MSFlexGrid2.Rows = 1
    Else
        MSFlexGrid1.Rows = 2
       ' MSFlexGrid2.Rows = 21
        rs.MoveFirst
        While (Not rs.EOF)
            MSFlexGrid1.TextMatrix(1, 0) = rs.Fields("日期")
              MSFlexGrid1.TextMatrix(1, 1) = rs.Fields("时间")
                MSFlexGrid1.TextMatrix(1, 2) = rs.Fields("浮标号")   (调试就是这里出错)
                rs.MoveNext
            
        Wend
    End If
    rs.Close
End Sub


求解
10 回复
#2
hwh1232012-06-25 16:28
????很晕啊
#3
hwh1232012-06-25 16:44
求高人指导啊???
#4
积善门徒2012-06-25 16:48
提示的是什么错误?
上班中,稍后细看
#5
积善门徒2012-06-25 16:57
是否数据库无该字段?
MSF列数够3?
前2项可获得数据,SQL应该无错
#6
hwh1232012-06-26 09:35
"无效使用null的错误"就这个错误啊,就是在点击最后一个List1里面的数据时,就会跳出来啊
#7
hwh1232012-06-26 09:37
怎么没高人啦。。。高人围观呀??
#8
bczgvip2012-06-26 12:00
用isnull 判断下再赐值。
#9
积善门徒2012-06-26 17:43
无码无真相
数据库访问方面我比较熟悉,所以多说几句,

貌似从代码中看不到什么问题
但代码中“If rs.RecordCount = 0 Then”这一句,我看了有点问题。
在编写过程中,我尽量避免使用这种表述,不能说错,但有时候RecordCount不一定正确!!!!!
尤其在使用MS的数据库时,常会出现!
这与数据库访问的游标处理有关(具体表述我忘了)
说白一点:有时候新产生的数据集,RecordCount不一定返回值!
在If rs.RecordCount = 0 Then  前加一句rs.MoveLast
-------------------
rs.MoveLast
If rs.RecordCount = 0 Then  
-------------------
这样RecordCount才返回正常的值。

我不能说这是你的问题所在,尤其是Null只表示在第3项,我难以从代码中看出问题!

做个小样,传上来看看吧!

真需要调试一下,看看过程中值的变化才知道啊@!

[ 本帖最后由 积善门徒 于 2012-6-26 23:17 编辑 ]
#10
积善门徒2012-06-26 23:19
原来是编辑了旧的,我还以为是新发了个贴!

原来上来散散心也精神不了,睡觉看看
#11
oncer2012-06-28 21:51
将 MSFlexGrid1.TextMatrix(1, 2) = rs.Fields("浮标号")   这句换成:
MSFlexGrid1.TextMatrix(1, 2) = IIf(IsNull(rs.Fields("浮标号")), "", rs.Fields("浮标号")) '即使是空值也忽略
1