vb的内容如何导出到word中
我做好了一个VB程序,里边有N个label,text,combo列成一个类似表格的排列label1label2text1text3combo1text2text4comb...
我做好了一个VB程序,里边有N个label,text,combo
列成一个类似表格的排列
label1 label2
text1 text3 combo1
text2 text4 combo2
类似这样的界面text中的内容我就省略了,直接用text代表一下
我想把这些内容通过一个按钮全部导出到word中,而且,是以表格的形式
1行显示我自己要定义的标题
2行1列中显示label1,2行2列中显示label2,2行3列中显示combo1
3行1列中显示text1 。。。以此类推
高手们帮帮忙,看下图说明的更清楚 展开
列成一个类似表格的排列
label1 label2
text1 text3 combo1
text2 text4 combo2
类似这样的界面text中的内容我就省略了,直接用text代表一下
我想把这些内容通过一个按钮全部导出到word中,而且,是以表格的形式
1行显示我自己要定义的标题
2行1列中显示label1,2行2列中显示label2,2行3列中显示combo1
3行1列中显示text1 。。。以此类推
高手们帮帮忙,看下图说明的更清楚 展开
4个回答
展开全部
先用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文件中。
在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 ’关闭数据库
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 ’关闭数据库
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建一个word对象,然后对其操作就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |