代码如下:If hardin.Recordset.BOF Or hardin.Recordset.RecordCount = 0 Then MsgBox "这已经是第一个了或数据库为空"
If Not hardin.Recordset.BOF And hardin.Recordset.EOF Then
hardin.Recordset.MovePrevious '到第一个的时候会出现问题,需要解决
For i = 0 To 9 Step 1
MSHFlexGridHardin.TextMatrix(0, i) = hardin.Recordset.Fields(i).Name
MSHFlexGridHardin.TextMatrix(1, i) = hardin.Recordset.Fields(i)
Next i
End If
问题:到记录集首尾时BOF EOF不为true?
从网上查询获悉记录集应该是按照如下格式
BOF
第一条
第二条
...
最后一条
EOF
但我实际操作的时候似乎BOF EOF 被当作记录存在?达人指点迷津
If Not hardin.Recordset.BOF And hardin.Recordset.EOF Then
hardin.Recordset.MovePrevious '到第一个的时候会出现问题,需要解决
For i = 0 To 9 Step 1
MSHFlexGridHardin.TextMatrix(0, i) = hardin.Recordset.Fields(i).Name
MSHFlexGridHardin.TextMatrix(1, i) = hardin.Recordset.Fields(i)
Next i
End If
问题:到记录集首尾时BOF EOF不为true?
从网上查询获悉记录集应该是按照如下格式
BOF
第一条
第二条
...
最后一条
EOF
但我实际操作的时候似乎BOF EOF 被当作记录存在?达人指点迷津
do while Not (hardin.Recordset.BOF or hardin.Recordset.EOF) Then
'到第一个的时候会出现问题,需要解决
For i = 0 To 9 Step 1
MSHFlexGridHardin.TextMatrix(0, i) = hardin.Recordset.Fields(i).Name
MSHFlexGridHardin.TextMatrix(1, i) = hardin.Recordset.Fields(i)
hardin.Recordset.movenext
Next i
End If
If hardin.Recordset.BOF Or hardin.Recordset.RecordCount = 0 Then MsgBox "这已经是第一个了或数据库为空"
do while Not (hardin.Recordset.BOF or hardin.Recordset.EOF) Then
'到第一个的时候会出现问题,需要解决
For i = 0 To 9 Step 1
MSHFlexGridHardin.TextMatrix(0, i) = hardin.Recordset.Fields(i).Name
MSHFlexGridHardin.TextMatrix(1, i) = hardin.Recordset.Fields(i)
Next i
hardin.Recordset.movenext
loop
If hardin.Recordset.BOF Or hardin.Recordset.RecordCount = 0 Then MsgBox "这已经是第一个了或数据库为空"
do while Not hardin.Recordset.EOF
For i = 0 To 9 Step 1
MSHFlexGridHardin.TextMatrix(0, i) = hardin.Recordset.Fields(i).Name
MSHFlexGridHardin.TextMatrix(1, i) = hardin.Recordset.Fields(i)
Next i
hardin.Recordset.movenext
loop
BOF
第一条
第二条
...
最后一条
EOF 这样情况也就是最后一条后movenext 还是最后但这时似乎已经是到了EOF这个地方但EOF这个地方是一个布尔量
所以再操作就会报错!
我用的是sqlserver数据库,我在想是不是数据库本身原因,所以才到mssql这里来问!
希望能解决!ps.修改后或者最初的代码(最初贴的是我修过N遍的)
If hardin.Recordset.EOF Or hardin.Recordset.RecordCount = 0 Then MsgBox "这已经是最后一个了或数据库为空"
If Not hardin.Recordset.EOF Then
hardin.Recordset.MoveNext
'到最后一个的时候会出现问题,需要解决
For i = 0 To 9 Step 1
MSHFlexGridHardin.TextMatrix(0, i) = hardin.Recordset.Fields(i).Name
MSHFlexGridHardin.TextMatrix(1, i) = hardin.Recordset.Fields(i)
Next i
End If再重复下问题:比如说记录已到倒数第二个了点击后movenext应该到last。再点击,判断EOF时应该为true吧!。但我逐步调试结果显示此时是false!!!
达人帮忙!