数据库是sql2000  我是用recordset 作为数据源。
     当我在往section1中写入纪录的时候, 当遇到null值得时候我将其设为"", 语句可以执行没有问题。
     但是当我用datareport.show的时候 就会出现这个问题。 
     我的代码在下面
     现在很郁闷! 在线等待sql = "select assetno,userno,pcname,place from " & asset & " order by " & assetno & " desc "
        Debug.Print sql
        reportdbcon sql
        
        Set DataReport1.DataSource = rs
        If rs.RecordCount = 0 Then Exit Sub
        
        Dim txt As New Collection
        Dim ctl As Object
        Do While Not rs.EOF
            For Each ctl In DataReport1.Sections.item("Section1").Controls
              
                If TypeName(ctl) = "RptTextBox" Then
                    Select Case ctl.Name
                    Case "Text1"
                        If Len(rs.Fields("userno")) = 0 Then
                            ctl.DataField = rs.Fields("userno").Name
                        Else
                            ctl.DataField = ""
                            
                        End If
                    Case "Text2"
                        If Len(rs.Fields("assettype")) = 0 Then
                            ctl.DataField = rs.Fields("assettype").Name
                        Else
                            ctl.DataField = ""
                        End If
                    Case "Text3"
                        If Len(rs.Fields("place")) = 0 Then
                            ctl.DataField = rs.Fields("place").Name
                        Else
                            ctl.DataField = ""
                        End If
                       
                End Select
                End If
            Next
            rs.MoveNext
        Loop
        
        DataReport1.Show     ------------------执行到这里,就会报错!

解决方案 »

  1.   

    DataReport上有没有指定数据源的控件,比如rpttextbox
      

  2.   

    当我在往section1中写入纪录的时候, 当遇到null值得时候我将其设为""If Len(rs.Fields("userno")) = 0 Then
         ctl.DataField = rs.Fields("userno").Name
    Else
         ctl.DataField = ""                            
    End If
    --------------------------------------------------------------------
    好几个条件是不是都写反了?
    If Len(rs.Fields("userno")) = 0 Then 
    应该是 
    If Len(rs.Fields("userno")) <> 0 Then 吧
      

  3.   

    哦  对阿 忘了说, 我在section1中指定了3 个rpttextbox 控件   他们的name 分别是text1,text2,text3
     恩对 faysky2() 说的对  , 我范了低级的逻辑错误
      

  4.   

    他们的name 分别是text1,text2,text3Case "Text1"
    -------------------------------------
    代码看起来没什么错误,看看是大小写的问题