数据库是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 ------------------执行到这里,就会报错!
当我在往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 ------------------执行到这里,就会报错!
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 吧
恩对 faysky2() 说的对 , 我范了低级的逻辑错误
-------------------------------------
代码看起来没什么错误,看看是大小写的问题