本文將告訴您,如何合併到文件在 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:
- 啟動 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 姓氏、 地址、 縣/市、 地區、 郵遞區號、 祝賀及相片] 欄位。
- 將文件儲存為 Olemerge.doc 在根資料夾 (目錄) 的磁碟機 C。
- 啟動 Microsoft Access 然後開啟範例資料庫 Northwind.mdb (或 NWIND.MDB 2.0 版中的)。
- 在 [設計] 檢視中開啟 [員工] 表單。
- 在表單模組的 [一般] 區段中,宣告下列的全域變數:
- 將命令按鈕加入至表單並將按鈕的 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
- 儲存此表單,在 [表單檢視] 中檢視表單。按一下新的命令按鈕。
請注意目前資料錄是傳送到 Microsoft Word、 合併到 OLEMERGE] 文件然後在預覽列印中開啟。
輸出格式上附註: 許多的 Access 資料型別是未格式化的輸出。(也就是使用貨幣傳送到 MS Word 為一般的數字) 就必須在這些情況下,若要以手動方式格式化資料。下列範例會格式化欄位,稱為 [價格] 輸出為貨幣: Word.Insert Cstr (Format(Forms![FormName]![Price],"Currency"))