我想把DataGrid控件上的数据导入到excel表中。通过确定DataGrid的横、纵坐标来确定DataGrid1.Text的内容。
但是当DataGrid中的行数达到一定的数值后(本人测算的是30行),下面行中的数值就无法读取到DataGrid1.Text中了。
而且报错“下标无效”。
请问如何把所有的DataGrid1.Text内容顺利读出来?
是通过设置DataGrid的属性,还是用程序语句编译,请大家帮帮忙!谢谢!

解决方案 »

  1.   

    导出数据到excel的话建议你用fpspread非常好用的一个表格控件,可以试试.
      

  2.   

    你可先把数据写入临时的表中,再把表中的数据写入EXCEL这样就应该没有问题了。还有,我在使用时没有遇到过行数限制的问题,一次写EXCEL几百条数据也没有问题呀。
      

  3.   

    DataGrid 不是这样用的。
      

  4.   

    通过与DataGrid控件关连的数据集的操作来完成。
      

  5.   

    能具体讲一讲吗?
    我用一个循环语句已经能过计算出数据库中的数据有50行,但是在DataGrid1.Text确定表中的内容时。
    在row=30以后就提示“下标越界”。
    不能再读取数据了。
    而且循环语句读取行数时,只能使用
    For i = 0 To DataGrid1.VisibleRows - 1
    语句
      

  6.   

    为什么不用
    for iRow = 0 to DataGrid.rows.count -1next
    呢?这是一个最普遍的方法呀。
      

  7.   

    DataGrid中没有rows属性,只有row这个属性
      

  8.   

    DataGrid绑定到数据集,你把数据集中的数据导入到Excel就可,这方面的资料网上实在太多,随手一抓就有
      

  9.   

    Option Explicit
        Dim cn As New ADODB.Connection '定义数据库的连接
        Dim rs As New ADODB.Recordset
        Dim sql As String
        Dim l As Integer
        Dim zsl As Integer
        Dim strData As String
        Dim xlapp As Variant
        Dim xlBook As Variant
        Dim xlSheet As Variant
        Dim i As Integer
        Dim j As IntegerPrivate Sub Command1_Click()
        sql = "select * from jishijilu where car_bm like 'DF160%'"
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\VB_program\kongtiao\CarTempTs.mdb;Persist Security Info=False"
        cn.Open
        rs.CursorLocation = adUseClient
        rs.Open sql, cn, adOpenDynamic, adLockOptimistic
        Set DataGrid1.DataSource = rs
        zsl = rs.RecordCount
        l = rs.Fields.Count
        Set xlapp = CreateObject("excel.application")
        Set xlBook = xlapp.Workbooks.Add
        Set xlSheet = xlBook.Worksheets(1)
        xlapp.Visible = True
        For i = 0 To zsl - 1
        For j = 0 To l - 1
            xlSheet.Cells(i + 1, j + 1) = rs.Fields(j)
        Next
        Next
    End SubPrivate Sub Command2_Click()
        rs.Close
        cn.Close
        xlapp.Quit '关闭EXCEL
        Set xlapp = Nothing '释放EXCEL对象
        End
    End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        rs.Close
        cn.Close
        xlapp.Quit '关闭EXCEL
        Set xlapp = Nothing '释放EXCEL对象
    End Sub