输出到EXCEL供打印
Private Sub Command1_Click()
  Dim i As Integer, j As Integer
  Set xlsapp = CreateObject("Excel.application")
  xlsapp.Visible = True '调试完成后改为false
  Set xlsbook = xlsapp.workbooks.Add
  Set xlsSheet = xlsbook.worksheets(1)
  
  Adodc1.Recordset.MoveFirst
  Adodc1.Recordset.MoveLast
  zs1 = Adodc1.Recordset.RecordCount
  Adodc1.Recordset.MoveFirst
  i = 0
  Do While Not Adodc1.Recordset.EOF
    For j = 0 To Adodc1.Recordset.Fields.Count - 1
      If Not IsNull(DataGrid1.Text) Then
        xlsSheet.cells(i + 1, j + 1) = Adodc1.Recordset(j)
      End If
    Next
    Adodc1.Recordset.MoveNext
    i = i + 1
  Loop
  xlsbook.Saveas App.Path & "\report.xls"
  xlsbook.Close
  xlsapp.quit
End Sub

解决方案 »

  1.   

    产生一个行为
    比如command1_click
    然后
    datareport1.show
    对datareport1的部分属性设置  让她等于datagrid.source
      

  2.   

    非常感谢,
    我想作一个打印话费清单的程序,想实现把内容快速打印。请问如何实现
    我用一个ADO控件,一个DATAGRID控件,想把查询的内容打印到80mm的纸上,请帮助!!!!
      

  3.   

    http://www.vbeden.com/activex/print.htm
    ”4、一个数据报表打印控件“
    有现成控件
      

  4.   

    参考一下
    http://www.csdn.net/expert/topic/725/725834.xml?temp=.3093073
      

  5.   

    如果输出到EXCEL供打印,系统要不要装Excel这个软件呢?!我觉的是不是可以直接用datareport打印呢
      

  6.   

    不必下载第三方控件。
    直接用datareort就可以了。
    做一个数据环境,在其下建一个command,然后从command中拖字段到datareport中,然后将datareport与ado相连,改变command的commandtext的sql与ado的sql语句一样属性然后对datareport进行刷新即可。
    具体刷新:
    dt.数据环境.rscommand1.close
    dt.数据环境.rscommands(1).commandtext = SQL
    dt.数据环境.rscommand1.open
      

  7.   

    感谢各位参与:
    最好不用什么控件得分者:
    footballboy(20分)
     zhangxf2000(30分)