1、提示对象变量或with变量块未设置
Private Sub Form_Load()
    Dim cn As ADODB.Connection
    Dim tb As ADODB.Recordset
    Set cn = New ADODB.Connection
    Set tb = New ADODB.Recordset
        
        cn.Open "Driver=Microsoft Access Driver (*.mdb);Dbq=e:\mis\data\2003.mdb;Uid=admin;Pwd="
        tb.Open "select * from 表", cn
    Set MSFlexGrid1.DataSource = tb
End Sub
2、 为什么access表中的single型字段在MSHFlexGrid1控件中常常显示不正确啊??有一个本来值是300.20,在MSHFlexGrid1中就显示成了300.20999 而同样是这个字段,别一行显示又是正确的!!别的single型字段也出现了同样的问题,我查看数据库中的数据是正确的。该怎么办??
我要处理2位小数,不能用single型吗??给出意见者都有高分!!

解决方案 »

  1.   

    rivate Function display2()                                 '显示数据到网格函数
    On Error Resume Next    gridInput.Cols = 7
    '************************************显示网格的字段名***********************
        gridInput.ColWidth(0) = 1350
        gridInput.ColWidth(1) = 1200
        gridInput.ColWidth(2) = 1900
        gridInput.ColWidth(3) = 600
        gridInput.ColWidth(4) = 900
        gridInput.ColWidth(5) = 750
        gridInput.ColWidth(6) = 1000
        
        gridInput.TextMatrix(0, 0) = "   日   期"
        gridInput.TextMatrix(0, 1) = "  种   类"
        gridInput.TextMatrix(0, 2) = "      规    格 "
        gridInput.TextMatrix(0, 3) = " 数 量"
        gridInput.TextMatrix(0, 4) = "  材 积"
        gridInput.TextMatrix(0, 5) = " 单  价"
        gridInput.TextMatrix(0, 6) = "  金  额"
        
        gridInput.Rows = 2
        rsInput.MoveFirst
    '**************************************读取数据**********************************
        Do While Not rsInput.EOF ' Loops until the Recordset is at end. (EOF = End Of File)
            gridInput.TextMatrix(gridInput.Rows - 1, 0) = rsInput.Fields(1).Value
            gridInput.TextMatrix(gridInput.Rows - 1, 1) = rsInput.Fields(2).Value
            gridInput.TextMatrix(gridInput.Rows - 1, 2) = rsInput.Fields(3).Value
            gridInput.TextMatrix(gridInput.Rows - 1, 3) = rsInput.Fields(4).Value
            gridInput.TextMatrix(gridInput.Rows - 1, 4) = rsInput.Fields(6).Value
            gridInput.TextMatrix(gridInput.Rows - 1, 5) = rsInput.Fields(7).Value
            gridInput.TextMatrix(gridInput.Rows - 1, 6) = rsInput.Fields(8).Value
            
            gridInput.Rows = gridInput.Rows + 1
            rsInput.MoveNext ' Remember to move to the next record.
        Loop
    End Function参考一下,解决你所有问题!
      

  2.   

    我主要是想知道上面两个问题是不是控件本身的问题,如果是本身就有的问题我就用datagrid控件算了,必竟写代码要多很多事(主要是因为我只是个初学者)
      

  3.   

    不是!MSFlexGrid控件一般用来显示数据,不能更改,想更改就需要填加文本框或者下拉列表框,然后编写代码!但是DataGrid可以双击以后直接更改!
    但是DataGrid太依赖内存,到记录上万条时候速度会很慢,
    而MSFlexGrid速度则快得多,显示大量数据而不需要更新时,最好用msflexgird
    记录不多情况下用DataGrid方便!
      

  4.   

    就我使用MSFlexGrid情况来看,很灵活,很好用包括用来做统计,很不错,灵活!不存在你说的问题!
      

  5.   

    我刚刚又试了一遍,MSHFlexGrid与记录集绑定后,其中的single型字段显示不正确,数据库中我输入的是300.01,在MSHFlexGrid中显示成了300.01001。