Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

返回列表 發(fā)新帖
查看: 4639|回復(fù): 7
打印 上一主題 下一主題

[與其它組件] [源碼]Access導(dǎo)出到Word的VBA代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2015-12-22 12:00:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
可以通過(guò)VBA將access內(nèi)容導(dǎo)出到word,代碼如下
Private Sub 導(dǎo)出word_Click()
    On Error GoTo ErrorHandler
    Dim strTemplate As String
    Dim strFileName As String
    Dim objApp As Object    'New Word.Application
    Dim objDoc As Object    'Word.Document
    Dim objField As Object    'Word.Field
    Dim rst As Object
    Dim blnNoQuit As Boolean
    strTemplate = CurrentProject.Path & "\模板\通知單模板.doc"
    '設(shè)置鼠標(biāo)指針為沙漏形狀
    DoCmd.Hourglass True
    Set objApp = CreateObject("Word.Application")
    Set objDoc = objApp.Documents.Open(strTemplate)
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM tbl通知單 WHERE ID=" & ID, , 4)    'dbReadOnly
    If Not rst.EOF Then
        strFileName = CurrentProject.Path & "\存放位置\" & "通知單" & rst!ID & ".doc"
        '如果文件已存在,先刪除已有文件
        If Dir(strFileName) <> "" Then Kill strFileName
        objDoc.FormFields("鋼筋綁扎胎具").result = rst!鋼筋綁扎胎具
        objDoc.FormFields("橋梁名稱").result = rst!橋梁名稱
        objDoc.FormFields("箱梁編號(hào)").result = rst!箱梁編號(hào)
        objDoc.FormFields("份數(shù)").result = Nz(rst!份數(shù))
        objDoc.FormFields("鋼筋吊裝時(shí)間").result = Format(rst!鋼筋吊裝時(shí)間, "yyyy年m月d日")
        objDoc.FormFields("交接人").result = rst!交接人
        objDoc.FormFields("字段1").result = rst!字段1
    End If
    rst.Close
    objDoc.SaveAs strFileName
    Beep
    If MsgBox("導(dǎo)出已完成,是否打開(kāi)該文件?", vbQuestion + vbYesNo, "導(dǎo)出完成") = vbYes Then
        objApp.Visible = True
        objDoc.Saved = True
        blnNoQuit = True
    End If
ExitHere:
    On Error Resume Next
    If Not blnNoQuit Then
        If Not objDoc Is Nothing Then objDoc.Saved = True
        If Not objApp Is Nothing Then objApp.Quit
    End If
    '恢復(fù)鼠標(biāo)指針
    DoCmd.Hourglass False
    '釋放對(duì)象變量?jī)?nèi)存
    Set objApp = Nothing
    Set objDoc = Nothing
    Set rst = Nothing
    Exit Sub
ErrorHandler:        '錯(cuò)誤處理程序
    If Err = 70 Then
        MsgBox "不能替換文件,因?yàn)闊o(wú)法刪除已有文件,可能的原因有:" & vbCrLf & vbCrLf & _
               "1.該文件處于打開(kāi)狀態(tài)。" & vbCrLf & _
               "2.沒(méi)有對(duì)此目錄的寫(xiě)入權(quán)限。", vbCritical
    Else
        MsgBox Err.Description, vbCritical, "出錯(cuò) #" & Err
    End If
    Resume ExitHere
End Sub
摘自網(wǎng)絡(luò)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2016-1-15 07:44:42 | 只看該作者
正好需要,謝謝

點(diǎn)擊這里給我發(fā)消息

3#
發(fā)表于 2020-4-22 11:17:09 | 只看該作者
學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

點(diǎn)擊這里給我發(fā)消息

4#
發(fā)表于 2020-10-26 10:53:29 | 只看該作者
學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

點(diǎn)擊這里給我發(fā)消息

5#
發(fā)表于 2020-11-19 15:13:10 | 只看該作者
學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

6#
發(fā)表于 2021-10-26 19:53:36 | 只看該作者
學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

點(diǎn)擊這里給我發(fā)消息

7#
發(fā)表于 2022-1-7 13:57:17 | 只看該作者
學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

8#
發(fā)表于 2024-5-2 23:34:41 來(lái)自手機(jī) | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 06:32 , Processed in 0.096880 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表