代码如下: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 被当作记录存在?达人指点迷津

解决方案 »

  1.   

    楼主这好像是VB的,到VB那里问比较快有人回答到你要的。
      

  2.   

    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) 
    hardin.Recordset.movenext 
            Next i 
            End If 
      

  3.   

    --modify
    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
      

  4.   

    --VB的语法大致是这样的吧,记不太清了。
    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
      

  5.   

    谢谢各位!我调试了下。还是不对!现在不是我语法的问题而是每次到记录集最后(或最前)再点下一个(或上一个)会出现类似
    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!!!
    达人帮忙!