请问这里的高手:如何使用通用对话框控件,把从数据库中生成的Word格式表格直接写到*.doc格式的文件中?

echun28 2003-10-21 09:32:41
下面这段程序代码,能使数据库中的数据以Word格式的表格写出。但每次都是直接打开WORD界面,然后把数据一一写入。整个写入的过程都会显示,如果数据很多的话,会用很长的时间。我想利用通用对话框控件,让整个过程在下面完成,而不是象这样显示。请问该如何对下面的程序进行修改?
Sub GenerateReport(sqlst As String, opdb As String, rpTile As String)
Dim db As Database
Dim app As New Word.Application
Dim doc As Word.Document
Dim sel As Word.Selection
Dim TBL As Word.Table
Dim rd As Recordset
Dim i, j As Integer
Dim docname As String
Set db = DBEngine.OpenDatabase(opdb, False, False)
app.Visible = True
app.Documents.Add
docname = app.ActiveDocument.Name
Set doc = app.Documents(docname)
Set rd = db.OpenRecordset(sqlst, dbOpenSnapshot, ReadOnly)
Set sel = app.Selection
With sel
.Font.Name = "ËÎÌå"
.Font.Size = 30
.Font.Bold = True
.ParagraphFormat.Alignment = wdAlignParaphCenter
.InsertAfter rpTile
.InsertParagraphAfter
.InsertParagraphAfter
.EndOf
End With

sel.Font.Size = 10
If rd.RecordCount > 0 Then
rd.MoveLast
Set TBL = sel.Tables.Add(sel.Range, rd.RecordCount + 1, rd.Fields.Count)
TBL.AutoFormat (36)
TBL.AllowAutoFit = True
TBL.Columns.AutoFit

With TBL
rd.MoveFirst
For j = 1 To .Columns.Count
.Cell(1, j).Range.Font.Bold = True
.Cell(1, j).Range.Text = rd.Fields(j - 1).Name
Next j
For i = 2 To .Rows.Count
For j = 1 To .Columns.Count
.Cell(i, j).Range.Text = Format(rd.Fields(j - 1).Value)
Next j
rd.MoveNext
Next i
End With

Else
sel.Document.Range.InsertAfter "没有记录"
End If

sel.GoToNext (wdGoToTable)
sel.Document.Range.InsertParagraphAfter
sel.Document.Range.InsertAfter Date
rd.Close
End Sub
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
射天狼 2003-10-21
  • 打赏
  • 举报
回复
上WORD里录制宏看看吧!!!
echun28 2003-10-21
  • 打赏
  • 举报
回复
谢谢cuizm,可是我怎样才能把生成的WORD格式的表,用VB语句直接存在磁盘上指定的路径内?而不是利用WORD来对其进行保存。比如说在VB中利用通用对话框控件,来对其进行保存,代码应该怎么写?
射天狼 2003-10-21
  • 打赏
  • 举报
回复
这个过程是必不可少的,你只要把其隐藏不让显示就可以了!!

app.Documents.Close '关闭文档
app.Visible = False '关闭之前,WORD也会显示出来,所以关闭之后还是使之不可见,防止闪烁
app.Quit '退出WORD应用

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧