技術(shù) 點
- 技術(shù)
- 點
- V幣
- 點
- 積分
- 274
|
使用下述方法可將表中的數(shù)據(jù)導入Word新文檔中,但每次導入時均創(chuàng)建一個新文檔,如果要導入一個已存在的文檔中,不知該如何更改代碼?請高手指教。
Sub 命令0_Click()
'步驟1:建立數(shù)據(jù)連接cnn
'由于數(shù)據(jù)庫已經(jīng)打開,所以直接應(yīng)用CurrentProject.Connection就可以建立連接
Set cnn = New ADODB.Connection
Set cnn = CurrentProject.Connection
'步驟2:用SQL語句創(chuàng)建記錄集rs
Set rs = New ADODB.Recordset
'設(shè)定游標類型與鎖定類型
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
'制定特定的查詢條件,可以是任何有效的SQL查詢,甚至包括多表、多條件等復雜的查詢,查詢條件也常常從窗體取得
SQL = "select 產(chǎn)品名稱,單位數(shù)量,單價,庫存量 from 產(chǎn)品 where 單價>10.00"
'創(chuàng)建記錄集rs
rs.Open SQL, cnn
'統(tǒng)計字段數(shù)及記錄數(shù)
total_fields = rs.Fields.Count
total_records = rs.RecordCount
'步驟3:建立Word文檔對象
Set mywdapp = CreateObject("word.application")
'調(diào)整Word窗口大小
mywdapp.WindowState = wdWindowStateNormal
'生成新的Word文檔實例
mywdapp.Documents.Add
'設(shè)置視圖為頁面視圖
mywdapp.ActiveWindow.View.Type = wdPrintView
'轉(zhuǎn)到Word視圖,顯示文檔生成過程
mywdapp.Visible = True
mywdapp.Activate
'設(shè)置文檔(表格)字體
mywdapp.ActiveDocument.Range.Font.Size = "9"
'步驟4:將記錄集rs中的字段名稱和字段內(nèi)容輸出到Word,各字段之間用制表符分隔
'輸出字段名稱
For I = 0 To total_fields - 2
mywdapp.Selection.TypeText Text:=rs.Fields(I).Name & vbTab
Next I
'最后一個字段名稱后加回車符
mywdapp.Selection.TypeText Text:=rs.Fields(total_fields - 1).Name & vbCrLf
'逐條輸出字段內(nèi)容
Do While Not rs.EOF
For I = 0 To total_fields - 2
tmpstr = rs.Fields(I).Value
If rs.Fields(I).Name = "單價" Then
tmpstr = Format(tmpstr, "####.00")
End If
mywdapp.Selection.TypeText Text:=tmpstr & vbTab
Next I
'一條記錄的最后一個字段后加回車符
mywdapp.Selection.TypeText Text:=rs.Fields(total_fields - 1).Value & vbCrLf
rs.MoveNext
Loop
'步驟5:關(guān)閉記錄集
rs.Close
Set rs = Nothing
mywdapp.Application.ScreenRefresh '刷屏
'轉(zhuǎn)到Acdess視圖,顯示結(jié)束對話框
mywdapp.Visible = False
Msg = "數(shù)據(jù)提取完畢。" & vbCrLf & vbCrLf
Msg = Msg & "總記錄數(shù)=" & total_records & " 條"
MsgBox Msg, vbOKOnly, "數(shù)據(jù)提取完畢"
'轉(zhuǎn)到Word視圖,顯示文檔
mywdapp.Visible = True
mywdapp.Activate
End Sub
|
|