If Not rs.EOF Then
 MSHFlexGrid1.Rows = rs.RecordCount + 1
    For i = 1 To rs.RecordCount
        For n = 0 To rs.Fields.Count - 1
            MSHFlexGrid1.TextMatrix(i, n) = rs.Fields(n)
        Next
        rs.MoveNext
    Next
End If
这段话是给MSHFLEXGRID赋值,但是当表中一个字段的值为空的时候,程序就提示出现错误,请问要怎么样修改才能不出现错误呀 ?

解决方案 »

  1.   

    If Not rs.EOF Then
     MSHFlexGrid1.Rows = rs.RecordCount + 1
        For i = 1 To rs.RecordCount
            For n = 0 To rs.Fields.Count - 1
                MSHFlexGrid1.TextMatrix(i, n) = iif(Len(Trim(rs.Fields(n)))=0," ",rs.Fields(n))
            Next
            rs.MoveNext
        Next
    End If
      

  2.   

    If Not rs.EOF Then 0
        MSHFlexGrid1.Rows = rs.RecordCount + 1
        For i = 1 To rs.RecordCount
            For n = 0 To rs.Fields.Count - 1
                MSHFlexGrid1.TextMatrix(i, n) = IIf(IsNull(rs.Fields(n)), "", rs.Fields(n))
                d = IsNull(rs.Fields(n))
            Next
            rs.MoveNext
        Next
    End If
      

  3.   

    这样准没错了!
    If mrc1.EOF = False Then
              With MSFlexGrid7
                   .Rows = 1
                   Do While Not mrc1.EOF
                      .Rows = .Rows + 1
                      For i = 0 To mrc1.Fields.Count - 1
                          .TextMatrix(.Rows - 1, i) = mrc1.Fields(i) & ""
                      Next i
                      mrc1.MoveNext
                   Loop
              End With
           End If
      

  4.   

    请问set MSFlexGrid1.datesource=rs 
    就能实现上面的代码,请问这样做有什么不妥吗?
      

  5.   

    关键是这句:TextMatrix(.Rows - 1, i) = mrc1.Fields(i) & ""
    后面要加上&""
    这代表如果是空的就为""
      

  6.   

    如果将表中选中的字段全部显示到MSFlexGrid1中,上面的代码确实很赘,用set MSFlexGrid1.datesource=rs 就可以解决问题,如果你在将表的内容显示到MSFlexGrid1中时需要根据条件筛选、计算或不规则地显示出来,就不能直接用set MSFlexGrid1.datesource=rs 了。
      

  7.   

    数据筛选为什么不能用SET呢,只要指定不同的记录集,不是一样的吗?
      

  8.   

    当然,只要你认为打开记录集时用where筛选后已经符合你的要求,就可以直接用set MSFlexGrid1.datesource=rs 帮定记录集。
    假如有以下情况,就不可能用帮定记录集方式,如:
    表中的性别字段男用‘1'、女用‘0'表示……显示到Grid上不能显示1和0吧;
    又如,当某字段的值小于0时,该字段上就显示0,等等……
    这样的情况太多了,也许你遇到的问题少。