我已经获得了一个数据集,怎么样才能把它打印到纸上或者打印预览?
我需要程序代码,从来没写过,不知道怎么插手多谢各位啦!

解决方案 »

  1.   

    用Printer对象啊,但是自己控制比较麻烦可以引用Excel对象,导出到Excel,然后使用Excel的打印(预览)功能转贴大斑竹的一篇文章:VB6 中将数据导出到 Excel 提速之法李洪根 
    --------------------------------------------------------------------------------Excel 是一个非常优秀的报表制作软件,用VBA可以控制其生成优秀的报表,本文通过添加查询语句的方法,即用Excel中的获取外部数据的功能将数据很快地从一个查询语句中捕获到EXCEL中,比起往每个CELL里写数据的方法提高许多倍。
    在程序中引用Microsoft Excel 9.0 Object Library,将下文加入到一个模块中,窗体中调用如下ExporToExcel("select * from table")。则实现快速将数据导出到EXCEL中。Public Function ExporToExcel(strOpen As String)
    '*********************************************************
    '* 名称:ExporToExcel
    '* 功能:导出数据到EXCEL
    '* 用法:ExporToExcel(sql查询字符串)
    '*********************************************************
    Dim Rs_Data As New ADODB.Recordset
    Dim Irowcount As Integer
    Dim Icolcount As Integer
       
       Dim xlApp As New Excel.Application
       Dim xlBook As Excel.Workbook
       Dim xlSheet As Excel.Worksheet
       Dim xlQuery As Excel.QueryTable
       
       With Rs_Data
           If .State = adStateOpen Then
               .Close
           End If
           .ActiveConnection = Cn
           .CursorLocation = adUseClient
           .CursorType = adOpenStatic
           .LockType = adLockReadOnly
           .Source = strOpen
           .Open
       End With
       With Rs_Data
           If .RecordCount < 1 Then
               MsgBox ("没有记录!")
               Exit Function
           End If
           '记录总数
           Irowcount = .RecordCount
           '字段总数
           Icolcount = .Fields.Count
       End With
       
       Set xlApp = CreateObject("Excel.Application")
       Set xlBook = Nothing
       Set xlSheet = Nothing
       Set xlBook = xlApp.Workbooks().Add
       Set xlSheet = xlBook.Worksheets("sheet1")
       xlApp.Visible = True
       
       '添加查询语句,导入EXCEL数据
       Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))
       
       With xlQuery
           .FieldNames = True
           .RowNumbers = False
           .FillAdjacentFormulas = False
           .PreserveFormatting = True
           .RefreshOnFileOpen = False
           .BackgroundQuery = True
           .RefreshStyle = xlInsertDeleteCells
           .SavePassword = True
           .SaveData = True
           .AdjustColumnWidth = True
           .RefreshPeriod = 0
           .PreserveColumnInfo = True
       End With
       
       xlQuery.FieldNames = True '显示字段名
       xlQuery.Refresh
       
       With xlSheet
           .Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Name = "黑体"
           '设标题为黑体字
           .Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Bold = True
           '标题字体加粗
           .Range(.Cells(1, 1), .Cells(Irowcount + 1, Icolcount)).Borders.LineStyle = xlContinuous
           '设表格边框样式
       End With
       
       With xlSheet.PageSetup
           .LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10公司名称:"   ' & Gsmc
           .CenterHeader = "&""楷体_GB2312,常规""公司人员情况表&""宋体,常规""" & Chr(10) & "&""楷体_GB2312,常规""&10日 期:"
           .RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:"
           .LeftFooter = "&""楷体_GB2312,常规""&10制表人:"
           .CenterFooter = "&""楷体_GB2312,常规""&10制表日期:"
           .RightFooter = "&""楷体_GB2312,常规""&10第&P页 共&N页"
       End With
       
       xlApp.Application.Visible = True
       Set xlApp = Nothing  '"交还控制给Excel
       Set xlBook = Nothing
       Set xlSheet = Nothing
    End Function
      

  2.   

    我并不想经过Excel那步,因为我以前就是用excel打印的。
    数据是从服务器上取到后放Excel中,然后直接打印的。
    我现在就上想通过vb程序,获得数据集MyRs后,打印预览,看看效果。不知道要实现我想要的,需要加什么控件,具体怎么操作?