我想把SQL Server数据库里的几个ntext字段按一定格式自动生成word文档,并在打开Word,请教应该怎么做比较好,能否给个案例

解决方案 »

  1.   

    这是引用(陈建华的源码):  
    这是将datagrid导入到word
    '下面的程序是将一个MSHFLEXGRID表格导出成WORD表格.你可以修改一下,将 
    'MainFrm.MainGrid.TextMatrix(J, i) 替换成相对应的RS值.Sub WordOut(OFile As String)  '导出为WORD文件
        Dim i As Integer, J As Integer, Col As Integer, Row As Integer
        Dim CellContent As String
        Dim Cols As Long, GridRow As Long
        Dim TmpText As String
        Dim AppID, ReturnValue As Long
        Dim MsWord As Object
        
        On Error Resume Next
        Set MsWord = CreateObject("Word.Basic")
        If (MsWord Is Nothing) Then
           MsgBox "你的系统中没有安装Word!", vbOKOnly + 16, "成绩统计!"
           Exit Sub
        End If
        Screen.MousePointer = 11
        GridRow = MainFrm.MainGrid.Rows - 5
        Cols = MainFrm.MainGrid.Cols - 1 '表格的列数
        FullBar.Max = MaxVal + 1
        FullBar.Value = 0
        NewVal = 0: OleVal = 0
        FullBar.Visible = True
        DoEvents
        Row = GridRow                 '打印表的行数
        MsWord.FileNewDefault
        MsWord.leftpara
        MsWord.screenupdating 0
        MsWord.tableinserttable , Cols, GridRow, , , 0, 0     '建立的表格大小
        MsWord.startofdocument
        For J = 5 To GridRow + 4 ' 表格的行数
            For i = 0 To Cols
                TmpText = MainFrm.MainGrid.TextMatrix(J, i)
                If J = 5 Then
                   If i > 4 And i < Cols - 3 And i Mod 2 = 0 Then TmpText = "名次"
                End If
                CellContent$ = TmpText
                MsWord.Insert CellContent$
                MsWord.NextCell
            Next i
            NewVal = J * MaxVal \ (GridRow + 5)
            If OleVal <> NewVal Then
               FullBar.Value = NewVal
               OleVal = NewVal
            End If
        Next J
      MsWord.tabledeleterow
      MsWord.startofdocument
      MsWord.tableselectrow
      MsWord.tableheadings 1
      MsWord.centerpara
      MsWord.screenrefresh
      MsWord.screenupdating 1
      FullBar.Value = FullBar.Max
      MsWord.FILESaveAS OFile
      DoEvents
      Screen.MousePointer = 0
      If Err.Number <> 0 Then
         MsgBox Error(Err.Number), vbOKOnly + 16, "成绩统计!"
         Err.Cls
      End If
      MsWord.FileClose
      MsWord.quit
      Set MsWord = Nothing
      DoEvents: Me.Show
    End Sub 
      

  2.   

    工程->引用->Microsoft Word 9.0 Object Library (后面为版本号)Dim wdApp as New Word.Application具体怎么操作你可以到WORD中录制宏看看就知道了!!