先用word建立一个“模板”,把该画的表格和格式设置好,然后调出“窗体”工具栏,在你想要接收vb传来数值的位置加入“文本型窗体域”(就是文本框),在“窗体”工具栏上把“域底纹”点一下把域的底纹去掉,要不然不好看。加入域的时候记得要为每个“域”的属性里“书签”命名(其实就是相当于vb中的“名称”),保存退出(假设为c:\doc1.doc)。
在vb中新建工程并引用Microsoft Word x Object Library,在窗体中加入与word中域相对应的文本框,加一个command,加入类似以下的代码(我只用了一个文本框做例子,你自己再扩展一下吧):
Private Sub Command1_Click()
Dim doc1 As Word.Application
Set doc1 = New Word.Application
doc1.Documents.Open ("c:\doc1.doc")
doc1.ActiveDocument.FormFields("text1").Result = Text1.Text
doc1.ActiveDocument.Save
doc1.Documents.Close
Set doc1 = Nothing
End Sub
这样一来,我就把窗体中text1中的text值传入到了名为doc1.doc的word文件中。
Dim cn As New ADODB.Connection ‘定义数据库
Dim rs As New ADODB.Recordset
Dim scan As String ‘存储查找数据库
Dim Appword As Word.Application ’定义WORD模型变量
Dim Newword As Word.Document
Set Appword = New Word.Application
Set Newword = Appword.Documents.Add(App.Path + "/stencil" + "/stencil.doc") ‘这里是打开模版文档。stencil是模板的意思。可根据自己的需要替换。
Appword.Visible = False ‘隐藏WORD。导出时不在任务栏出现WORD文档。
Appword.WindowState = wdWindowStateMinimize
scan = text2(0).Text '按编号搜索需要导出word的记录,一次只能导出一条记录
rs.CursorLocation = adUseClient
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "/data.mdb;Jet OLEDB:Database Password=harry2000"
cn.Open ConnectionString
rs.Open "select * from ADMIN where 编号 = '" & scan & "'", cn, adOpenKeyset, adLockOptimistic‘查找需要导出的记录
If rs.RecordCount = 0 Then ’如果不存在该记录
MsgBox "请在左边选择需要导出的记录"
Appword.Documents.Close
Appword.Quit
Exit Sub
Else ‘如果存在记录则运行以下代码
With Newword ’设置模版表格和在表格中填入数据库内容。
.Tables(1).Cell(1, 1).Range.Text = (Format(rs!日期, "yyyy年mm月dd日"))
.Tables(2).Cell(3, 4).Range.Text = (rs!时间) '可以根据自己的需要设置填写内容。
End With
Appword.ChangeFileOpenDirectory (App.path+ "/导出WORD文件夹")
Appword.ActiveDocument.SaveAs FileName:=(App.path+ "/导出WORD文件夹/" & rs!姓名 & Format(Now, "yyyy-mm-dd") & ".doc"), FileFormat:=wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False
Appword.Documents.Close
Appword.Quit
MsgBox "导出成功," & rs!姓名 & Format(Now, "yyyy-mm-dd") & "的资料保存于" & vbCrLf & vbCrLf & App.path + "/导出WORD文件夹"
End If
Set Appword = Nothing ‘交还控制权
Set Newword = Nothing
Newword.Close
rs.Close ’关闭数据库
到 http://club.excelhome.net/forum-23-1.html 技术论坛发帖吧
创建一个word对象,然后对其操作就行了