请问这里的高手:如何使用通用对话框控件,把从数据库中生成的Word格式表格直接写到*.doc格式的文件中?
下面这段程序代码,能使数据库中的数据以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