我用MSFlexGrid 控件绑定Data控件来操作数据库,如何能实现数据打印呢。在VB里怎么能打印出word 文档呢。请帮忙!!

解决方案 »

  1.   

    第一个问题直接放到excel中打印就可以了!!先自己制作一个excel模板,我使用xx.xlsOn Error Resume Next
    '把查询到的数据放到excel中打印
    Dim PageNum As Integer
    Dim Size As Integer
    Dim File As String
    Dim I As Integer
    Dim R As Integer
    Dim P As Integer
    PageNum = 1 '打印的页数
    Size = 17 '一页可以打印的行数
    '得到打印的页数
    While Not (PageNum * Size) - (Msf.Rows - 3) > 0
        PageNum = PageNum + 1
    Wend'循环打印每一页
    For P = 1 To PageNum
        Dim Exl As New Excel.Application
        Dim Book As Excel.Workbook
        Dim Sheet As Excel.Worksheet
        
        FileCopy App.path & "\report\xx.xls", App.path & "\xx.xls"
        File = App.path & "\xx.xls"
        Set Book = Exl.Workbooks.Open(File)
        Set Sheet = Book.Worksheets(2)
        Book.Application.DisplayAlerts = False    '把数据写入sheet中
        With Sheet
            For R = 1 To Size
                For I = 1 To 12
                    .Cells(R + 5, I) = Msf.TextMatrix((P - 1) * Size + 2 + R, I - 1)
                Next
            Next
            .PageSetup.Orientation = xlLandscape        .PrintOut
            
        End With
        Book.Save
        Book.Close
        Set Book = Nothing
        Exl.Quit
        Set Exl = Nothing
    Next
      

  2.   

    第二个问题和第一个差不多,直接操作word就可以了我的例子很简单,具体的你最好到vba版面去问Dim wd As New Word.Application
    Dim dc As New Word.Document
    '打开你的word文档
    dc.Application.DisplayAlerts = wdAlertsAll
    Set dc = wd.Documents.Open("c:\123.doc")
    With dc
        '插入一个2行5列的表格
        .Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
            5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
            wdAutoFitFixed
        
        '在第一行,第一列中填入数据 1
        Selection.TypeText Text:="1"
        
        '格子间的移动
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.MoveDown Unit:=wdLine, Count:=1
        Selection.MoveRight Unit:=wdCharacter, Count:=5
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
        
        
        '增加一行
        Selection.InsertRows 1
    End With
    '打印
    dc.PrintOutdc.Save
    dc.Close
    Set dc = Nothing
    wd.Quit
      

  3.   

    我问一下,如果客户没有安装excel和word可以么?
      

  4.   

    不行,使用这种方法excel和word作为后端服务是必须存在的。
      

  5.   

    是啊.还是用报表吧,比如DATAREPORT,水晶报表
      

  6.   

    用office做起来相对简单,水晶报表操作比较麻烦。
      

  7.   

    用VBA控制WORD来打印!!
    工程->引用->Microsoft Word 9.0 Object Library(后面为版本号)至于怎么控制,你可以上WORD中录制宏看一下就知道了!
      

  8.   

    Data控件能绑定报表,能实时更新吗?我用Data environment和Data report做的报表不能实时更新,不得不放弃。