在使用Mshflexgrid控件显示表中数据时,我发现数据(例222.22或-222.22)的数据显示为(999999999),不能正确显示。我认为问题可能出在:取出表中数据时,我声明的变量是String型的(因为数据中有字符串),如何解决?请各位帮帮忙!谢谢!!
下面是我的代码:
————jljlmk是连接数据库的类模块
Set sel = New jljlmk
Dim aaa As String
aaa = "select * from gz_data "
Set se = sel.jlj(aaa)
Set MSHFlexGrid1.DataSource = se

解决方案 »

  1.   

    你把列宽拉大一点,是不是显示类似 222.22000999999999999999之类的,
    你可以在Set MSHFlexGrid1.DataSource = se 之后对该列做个循环,用format函数规范一下数据。
      

  2.   

    select * from gz_data 
    改为
    select *,cast(aaa as char(10))  from gz_data 
    aaa最好设置为NUMERIC类型,小数点位数设为2
      

  3.   

    select 'yourfield' = convert(decimal(16,2),yourfield) from yourtable
      

  4.   

    谢谢各位:
       是显示类似 222.22000999999999999999的数据,abc10你说的循环,format函数规范,我不会用,我共有120个字段,该怎么做,给我一段例子好吗?谢谢!!
        阿军,你说的我试了,不好使,提示我“对象'open'的'_Recordset'方法失败”,在帮帮忙想想,谢谢!!!
      

  5.   

    Dim I, J As Integer
       Dim aaa As String
       For I = 0 To MSHFlexGrid1.Cols - 1
       For J = 0 To MSHFlexGrid1.Rows - 2
       aaa = MSHFlexGrid1.TextMatrix(J, I)
         If Len(Mid(aaa, InStr(1, aaa, ".") + 1)) > 3 Then
           MSHFlexGrid1.TextMatrix(J, I) = Format(aaa, "0.000")
         End If
       Next
       Next
      

  6.   

    纠正一下
       Dim I, J As Integer
       Dim aaa As String
       For I = 0 To MSHFlexGrid1.Cols - 1
       For J = 0 To MSHFlexGrid1.Rows - 1
       aaa = MSHFlexGrid1.TextMatrix(J, I)
         If Len(Mid(aaa, InStr(1, aaa, ".") + 1)) > 3 Then
           MSHFlexGrid1.TextMatrix(J, I) = Format(aaa, "0.000")
         End If
       Next
       Next