为了避免datagrid 的空行也参与计算,保存的代码这样写:
If Not rst.BOF Then
rst.MoveFirst
Do While Not rst.EOF
If dgdData.Columns(0).Text = "" Then
Exit Do
Else
rst!序号 = Number
rst.MoveNext
End If
Loop
End IfNo=rst.RecordCount这段代码运行后rst.RecordCount的值总是把空行也算进去,但是数据库显示的记录数却是正常过的。
问题出在哪里?
If Not rst.BOF Then
rst.MoveFirst
Do While Not rst.EOF
If dgdData.Columns(0).Text = "" Then
Exit Do
Else
rst!序号 = Number
rst.MoveNext
End If
Loop
End IfNo=rst.RecordCount这段代码运行后rst.RecordCount的值总是把空行也算进去,但是数据库显示的记录数却是正常过的。
问题出在哪里?
加个过滤的条件就可以了
rst.filter="字段1<>''"
If dgdData.Columns(0).Text = "" Then
是否有效。
如1楼所言,设置 Filter 即可。
把这个改为:rst.filter="次数 <>''" 加在最上面If Not rst.BOF Then 上,还是不对。
rst.ActiveConnection = connme
rst.filter="次数 <>''"
If Not rst.BOF Then
rst.MoveFirst
Do While Not rst.EOF
If dgdData.Columns(0).Text = "" Then
Exit Do
Else
rst!序号 = Number
rst.MoveNext
End If
Loop
End If
rst.UpdateBatch
grpNo = rst.RecordCount
这段代码执行后,我输入7条有数据记录和1个空行,rst.RecordCount还是显示7
msgbox rst.recordcount
rstMyRecordset_Data.MoveFirst
Do While Not rstMyRecordset_Data.EOF
If dgdData.Columns(0).Text = "" Then
Exit Do
Else
rstMyRecordset_Data!试验序号 = strMyTestNumber
rstMyRecordset_Data.MoveNext
grpNo = grpNo + 1
End If
Loop
End If rstMyRecordset_Data.ActiveConnection = connme
rstMyRecordset_Data.UpdateBatch
rstMyRecordset_Data.ActiveConnection = Nothing
dim rst as new ADODB.Recordset
rst.Open "select * from 表名 where 试验序号='" & strmytestnumber &"' and 次数 <>" & Chr(39) & "" ,connme
msgbox rst.recordcount
rst.close
在msgbox rst.recordcount这句加个断点,就提示对象变量未设置。
rst.filter="次数 <>''"
rst.requery
rst.Open "select * from 表名 where 试验序号='" & strmytestnumber &"' and 次数 <>" & Chr(39) & "" ,connme 你最后面的那个逗点 你打的是什么逗点 ? 半型全型也不注意
你的Chr(39)是什么意思,按你的写法,记录集打不开。“对象关闭时不允许操作”