循环赋值!
依次设定excel.cells(row,col)的值为ado的某一个字段的值,然后移动纪录集,同时将excel的row值加1。循环

解决方案 »

  1.   

    Dim xlApp As Object  'excel程序的对象
    Dim xlBook As Object 'excel的工作簿
    Dim xlSheet As Object  'excel的工作表
    Set xlApp = CreateObject("Excel.Application")
            xlApp.Visible = True  '设成false可以隐藏excel
            Set xlBook = xlApp.Workbooks.Add(App.Path + "\XXX.xls")  '在程序所在的目录下打开excel文件
            Set xlSheet = xlBook.Worksheets(1)  '打开第一张工作表
    xlSheet.cells(1,1) = adoXXX.Recordset.Fields("XXX").Value '把某条记录里的某个字段的值付值给表里的A1
    xlBook.Save    '保存工作表
    xlSheet.Printout  '打印工作表
    xlApp.Quit      '退出excel
    这样的原代码应该够明白了吧!
      

  2.   

    楼上的对,但是利用DTS的做法更快,而且不用便代码sql已经该你编好了你可以直接用
      

  3.   

    利用DTS的做法?小弟不知,还望指点!
    楼上能给出具体一点的例子吗?
      

  4.   

    laohui() 说的方法在大数据量时不可行,总死机!!!我想能否调用sqlserver的导出excel功能啊?怎么作?哪位老大指点一下!!!
      

  5.   


    按照 laohui() 的方式打开Excel Object
    然后    With ActiveSheet.QueryTables.Add(Connection:= _
            "ODBC;DRIVER=SQL Server;SERVER=192.168.0.2;UID=sa;PWD=admin;APP=Microsoft? Access;WSID=ALEX;DATABASE=CESolution" _
            , Destination:=Range("A1"))
            .CommandText = Array( _
            "SELECT MNG_GSBList.ID, MNG_GSBList.WorkID, MNG_GSBList.DID, MNG_GSBList.OccCount, MNG_GSBList.UseDesc, MNG_GSBList.GetDate, MNG_GSBList.SBType, MNG_GSBList.EditorID, MNG_GSBList.AUDate, MNG_GSBList.GI" _
            , "D" & Chr(13) & "" & Chr(10) & "FROM CESolution.dbo.MNG_GSBList MNG_GSBList" & Chr(13) & "" & Chr(10) & "ORDER BY MNG_GSBList.ID")
            .Name = "查询来自 CESolution"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = True
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .Refresh BackgroundQuery:=False
        End With