有关从数据库向WORD中输出内容的,最关键是要每个分页要有一样的表头。

来源:百度知道 编辑:UC知道 时间:2024/06/12 10:57:24
Private Sub Command1_Click()
Dim AdoRs As New ADODB.Recordset
Dim WordTemps As New Word.Application
Dim strSQl As String
Dim i As Integer
WordTemps.Documents.Add App.Path + "\07.doc", False
strSQl = "select * from zxwh "
AdoRs.Open strSQl, Con, 1, 1
If AdoRs.EOF Then
MsgBox "没有记录"
AdoRs.Close
Exit Sub
Else
Do While Not AdoRs.EOF
WordTemps.Selection.GoTo wdGoToBookmark, , , "添表人"
WordTemps.Selection.TypeText AdoRs(0)
WordTemps.Selection.GoTo wdGoToBookmark, , , "备注"
WordTemps.Selection.TypeText AdoRs(1)
If AdoRs("AddWs") = 1 Then
WordTemps.ActiveDocument.Tables(1).Cell(1, 1).Range.Text = "ok"
End If
If AdoRs("Adddpm") = 1 Then
WordTemps.ActiveDocument.Tables(1).Cell(3, 1).Range.Text = "ok"
End If
WordTemps.Selection.MoveEnd
WordTemps.S

1、首先你必须制作WORD模板,使用你需要的格式,在添加数据的地方,设置书签(WORD中有设置书签的功能,【插入】-【书签】),分别命名书签名称,在不需要插入数据的地方,可以直接输入文字,不需要放置书签;
2、在DO循环中每次必须打开WORD模板插入数据,然后另存为这个WORD模板,必须修改文件名,然后再关闭这个WORD模板;
3、或在DO 循环前打开模板,依次输入数据,这样,WORD是可以自动分页的,在DO循环结束后,另存为DOC文件,最后关闭模板即可;
4、关于书签在插入数据时使用标签,例如你插入的数据有3条,就设置3个书签,分别命名,然后对应数据即可。

你上面的代码可能实现比较困难。

给你一段代码,请参考:
On Error Resume Next
Dim WordTemps As New Word.Application
'连接数据库语句省略
RS.Open "SQL连接字符串", con, 2, 2
Set MSHFlexGrid1.DataSource = RS
MSHFlexGrid1.DrawWidth = 200
If Not RS.EOF Then
WordTemps.Documents.Add App.Path + "\X.doc", False 'X.doc是模板
WordTemps.Selection.TypeText "标题"
'插入数据
WordTemps.Selection.GoTo wdGoToBookmark, , , "书签1"
WordTemps.Selection.TypeText RS!字段1
WordTemps.Selection.GoTo wdGoToBookmark, , , "书签2"
WordTemps.Selection.T