文章編號: 124862 - 上次校閱: 2006年10月11日 - 版次: 1.2

ACC: 使用 OLE 自動化 Word 以傳送目前資料錄

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
進階: 須具備專家編碼、 互通性,與多使用者技能。

全部展開 | 全部摺疊

結論

本文將告訴您,如何合併到文件在 Microsoft Word 版本 7.0 或更早的版本的 Microsoft Access 物件中目前的記錄,並在 [預覽列印] 中開啟它。

如需有關如何合併與 Microsoft Word 97 文件目前的記錄資訊,請參閱 「 Microsoft 知識庫 」 中下列文:
131583? (http://support.microsoft.com/kb/131583/EN-US/ ) ACC: 將目前資料錄傳送至以自動化 Word 97
本文假設您已熟悉使用 Visual Basic 應用程式以及建立 Microsoft Access 應用程式使用程式設計與 Microsoft Access 所提供的工具。如需有關 Visual Basic 應用程式,請參閱 「 建置應用程式與 Microsoft Access 的 Windows 95 」 手冊。

注意: 應用程式 (使用在 Access 中的 Windows 95 7.0 版) 的 Visual Basic 稱為存取基本 2.0 版中。如需有關存取基本的詳細資訊,請參閱 < 建置應用程式"手冊。

其他相關資訊

下列步驟將告訴您,如何建立 Microsoft Word 文件和 Microsoft Access 表單然後用來合併到 Microsoft Word 的目前資料錄從 Microsoft Access:
  1. 啟動 Microsoft Word 並建立下列新的文件:
          First Last
          Address
          City, Region, PostalCode
    
          Dear Greeting,
    
          Northwind Traders would like to thank you for
          your employment during the past year. Below
          you will find your photo. If this is not your
          most current picture, please let us know.
    
          Photo
    
          Sincerely,
    
          Northwind Traders
    					
  2. 建立這個字的書籤"名字"。如果要執行這項操作,請選取文字在"名字"按一下 [編輯] 功能表上的 [書籤"名字"(不含引號) 中鍵入書籤名稱] 方塊然後再按一下 [新增] 按鈕。
  3. 重複步驟 2 姓氏、 地址、 縣/市、 地區、 郵遞區號、 祝賀及相片] 欄位。
  4. 將文件儲存為 Olemerge.doc 在根資料夾 (目錄) 的磁碟機 C。
  5. 啟動 Microsoft Access 然後開啟範例資料庫 Northwind.mdb (或 NWIND.MDB 2.0 版中的)。
  6. 在 [設計] 檢視中開啟 [員工] 表單。
  7. 在表單模組的 [一般] 區段中,宣告下列的全域變數:
    Dim Word As Object
    					
  8. 將命令按鈕加入至表單並將按鈕的 OnClick 屬性設定為下列事件程序。
    在 7.0 版中:
           Sub Command40_Click()
           On Error GoTo CatchBlanks
           Dim Word As Object ' Declare in the module to view the print
                              ' preview after the Sub ends
    
              DoCmd.GoToControl "Photo"
              DoCmd.DoMenuItem acFormBar, acEditMenu, acCopy, , acMenuVer70
              Set Word = CreateObject("Word.Basic")
              Word.FileOpen ("C:\OLEMERGE.DOC")
              Word.EditGoto "Last"
              Word.INSERT CStr(Forms![Employees]![LastName])
              Word.EditGoto "First"
              Word.INSERT CStr(Forms![Employees]![FirstName])
              Word.EditGoto "Address"
              Word.INSERT CStr(Forms![Employees]![Address])
              Word.EditGoto "City"
              Word.INSERT CStr(Forms![Employees]![City])
              Word.EditGoto "Region"
              Word.INSERT CStr(Forms![Employees]![Region])
              Word.EditGoto "PostalCode"
              Word.INSERT CStr(Forms![Employees]![PostalCode])
              Word.EditGoto "Greeting"
              Word.INSERT CStr(Forms![Employees]![FirstName])
              Word.EditGoto "Photo"
              Word.EditPaste
              'Word.FilePrint 0
              ' To send the record directly to the printer, unremark the line
              ' above, and remark the next two lines below.
              Word.appmaximize "",1
              Word.FilePrintPreview
              Word.AppActivate "Microsoft Word"
              Exit Sub
    
           CatchBlanks:
               If MsgBox("Error sending one field, it may be blank. Would _
                  you like to continue?", 52) = 6 Then
                  Resume Next
               Else
                  Exit Sub
               End If
    
          End Sub
    					
    在 2.0 版中:
    注意: 在下列範例程式碼的線條結尾是以底線 (_) 是用來當做行接續字元。重新建立這個程式碼中存取基本時,則請移除行尾底線。
           Sub Button182_Click ()
              On Error GoTo CatchBlanks
              Dim Word As Object ' Declare in the module to view the print
                                 ' preview after the Sub ends
    
              DoCmd GoToControl "Photo"
              DoCmd DoMenuItem A_FORMBAR, A_EDIT, A_COPY
              Set Word = CreateObject("Word.Basic")
              Word.FileOpen ("C:\OLEMERGE.DOC")
              Word.EditGoto "Last"
              Word.Insert CStr(Forms![Employees]![Last Name])
              Word.EditGoto "First"
              Word.Insert CStr(Forms![Employees]![First Name])
              Word.EditGoto "Address"
              Word.Insert CStr(Forms![Employees]![Address])
              Word.EditGoto "City"
              Word.Insert CStr(Forms![Employees]![City])
              Word.EditGoto "Region"
              Word.Insert CStr(Forms![Employees]![Region])
              Word.EditGoto "PostalCode"
              Word.Insert CStr(Forms![Employees]![Postal Code])
              Word.EditGoto "Greeting"
              Word.Insert CStr(Forms![Employees]![Last Name])
              Word.EditGoto "Photo"
              Word.EditPaste
              ' Word.FilePrint 0, 0, "0", "", "", "", 0, "1", "", 0, 0, 1, ""
    
              ' NOTE: When sending the current record from Microsoft Access 2.0
              ' to Microsoft Word 95, replace the above line with the
              ' following line:
    
              ' Word.FilePrint 0
    
              ' To send the record directly to the printer, unremark one of the
              ' lines above, and remark the next two lines below.
    
              Word.appmaximize "",1
              Word.FilePrintPreview
              Word.AppActivate "Microsoft Word"
           Exit Sub
    
              CatchBlanks:
                 If MsgBox("Error sending one field, it may be blank. Would _
                 you like to continue?", 52) = 6 Then
                    Resume Next
                 Else
                    Exit Sub
                 End If
    
           End Sub
    					
  9. 儲存此表單,在 [表單檢視] 中檢視表單。按一下新的命令按鈕。

    請注意目前資料錄是傳送到 Microsoft Word、 合併到 OLEMERGE] 文件然後在預覽列印中開啟。

    輸出格式上附註: 許多的 Access 資料型別是未格式化的輸出。(也就是使用貨幣傳送到 MS Word 為一般的數字) 就必須在這些情況下,若要以手動方式格式化資料。下列範例會格式化欄位,稱為 [價格] 輸出為貨幣:
    Word.Insert Cstr (Format(Forms![FormName]![Price],"Currency"))

這篇文章中的資訊適用於:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
關鍵字:?
kbmt kbhowto kbprogramming KB124862 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:124862? (http://support.microsoft.com/kb/124862/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
Retired KB Article依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。