Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Artikel ini menunjukkan bagaimana untuk mengotomatisasi Microsoft Word dari client-side script untuk melakukan mail
gabungan untuk label. Word tidak memiliki metode langsung untuk menggunakan data XML sebagai
sumber data gabungan surat. Sampel menggambarkan Active Server Pages (ASP)
kode yang aliran recordset XML dari Web server untuk klien. Sisi klien
script mengkonversi data XML ini ke berkas berpembatas teks yang lokal untuk
klien dan kemudian mengotomatiskan Word untuk mengoperasikan gabungan surat dengan menggunakan teks lokal
file sebagai sumber data gabungan surat.
ActiveX Data objek (ADO) 2.5 dan kemudian memungkinkan recordset
data untuk bertahan dalam XML format. Menggunakan ASP pada Web server, Anda dapat membangun
ADO recordset dari database dan kembali data XML untuk klien Anda. Dalam
mengaktifkan, klien dapat menggunakan ADO membaca XML recordset dan memanipulasi data sebagai
diperlukan. Lihat bagian "Referensi" dari artikel ini untuk link ke tambahan
sumber daya menggunakan ADO dengan XML.
Untuk tujuan ilustrasi,
contoh berikut menggunakan sampel Pub database di Microsoft SQL Server. Namun, kode yang sama mungkin
digunakan untuk mengoperasikan gabungan surat dengan setiap database yang Anda dapat membuat ADO
sambungan.
Pada server Web Anda, membuat direktori virtual yang
disebut WordMailMerge.
Gunakan Notepad untuk menciptakan sebuah file bernama Default.asp yang
berisi kode yang diberikan di bawah ini. Simpan file ke WordMailMerge virtual
direktori.
<%@ Language=VBScript %>
<HTML>
<BODY>
<SCRIPT LANGUAGE=VBScript>
Sub CreateDataDoc(oApp)
' Declare variables.
Dim sServer,oDoc,oRS,sTemp,sHead,oRange,oField
' Place your server's name here.
sServer = "<servername>"
' Create a new document.
Set oDoc = oApp.Documents.Add
' Create a new recordset.
Set oRS = CreateObject("ADODB.Recordset")
' Open the XML recordset from the server
oRS.Open "http://" & sServer & "/WordMailMerge/Getdata.asp"
' Convert the recordset to a string.
sTemp = oRS.GetString(2, -1, vbTab) ' 2 = adClipString
' Append the field names to the front of the string.
For Each oField In oRS.Fields
sHead = sHead & oField.Name & vbTab
Next
' Strip off the last tab.
sTemp = Mid(sHead, 1, Len(sHead) - 1) & vbCrLf & sTemp
' Get a range object and insert the text into the document.
Set oRange = oDoc.Range
oRange.Text = sTemp
' Convert the text to a table.
oRange.ConvertToTable vbTab
' Save the document to a temp file.
oDoc.SaveAs "C:\data.doc"
' Close the document (no save).
oDoc.Close False
End Sub
Sub ButtonClick()
Dim oApp
Dim oDoc
Dim oMergedDoc
' Create an instance of Word.
Set oApp = CreateObject("Word.Application")
' Create our data file.
CreateDataDoc oApp
' Add a new document.
Set oDoc = oApp.Documents.Add
With oDoc.MailMerge
' Add our fields.
.Fields.Add oApp.Selection.Range, "au_fname"
oApp.Selection.TypeText " "
.Fields.Add oApp.Selection.Range, "au_lname"
oApp.Selection.TypeParagraph
.Fields.Add oApp.Selection.Range, "city"
oApp.Selection.TypeText ", "
.Fields.Add oApp.Selection.Range, "state"
oApp.Selection.TypeParagraph
.Fields.Add oApp.Selection.Range, "zip"
oApp.Selection.TypeParagraph
' Create an autotext entry.
Dim oAutoText
Set oAutoText = oApp.NormalTemplate.AutoTextEntries.Add _
("MyLabelLayout", oDoc.Content)
oDoc.Content.Delete
.MainDocumentType = 1 ' 1 = wdMailingLabels
' Open the saved data source.
.OpenDataSource "C:\data.doc"
' Create a new document.
oApp.MailingLabel.CreateNewDocument "5160", "", _
"MyLabelLayout", , 4 ' 4 = wdPrinterManualFeed
.Destination = 0 ' 0 = wdSendToNewDocument
' Execute the mail merge.
.Execute
oAutoText.Delete
End With
' Close the mail merge edit document.
oDoc.Close False
' Get the current document.
Set oMergedDoc = oApp.ActiveDocument
' Show Word to the user.
oApp.Visible = True
' Uncomment these lines to save the merged document locally.
'oMergedDoc.SaveAs "C:\test.doc"
'oMergedDoc.Close False
'oApp.Quit False
End Sub
</SCRIPT>
<INPUT type=button value="Create Word Document" onclick="VBScript:ButtonClick">
</BODY>
</HTML>
Gunakan Notepad untuk menciptakan sebuah file bernama Getdata.asp yang
berisi kode yang diberikan di bawah ini. Simpan file ke WordMailMerge virtual
direktori.
<%@ Language=VBScript %>
<%
Dim oConn,oRS,strConn,sSQLServer
' Build the connection string. Replace <username> and <strong password> with
' the username and password of an account that has permissions on the database.
sSQLServer = "<servername>"
strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;" & _
"User ID=<username>;Password=<strong password>;Initial Catalog=pubs;Data Source=" & sSQLServer
' Set our return content type.
Response.ContentType = "text/xml"
' Create a connection.
set oConn = Server.CreateObject("ADODB.Connection")
' Open the connection.
oConn.Open strConn
' Execute the SQL statement.
set oRS = oConn.Execute(?SELECT * FROM AUTHORS?)
' Save the recordset in the Response object.
oRS.Save Response,1
%>
Perubahan sServer variabel dalam Default.asp untuk menunjuk ke server Web Anda, dan mengubah
The sSQLServer variabel dalam Getdata.asp untuk menunjuk ke SQL Server.
Jalankan Internet Explorer dan browse ke http://ServerNameMengatakan /WordMailMerge/Default.asp (di manaServerNamemengatakan nama server Web Anda).
Klik tombol pada halaman Web untuk mengotomatisasi kata dan
mengoperasikan gabungan surat. Ketika otomatisasi lengkap, kata muncul dengan yang baru
dokumen yang berisi label surat yang dihasilkan dari surat
menggabungkan.
Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
195826
(http://support.microsoft.com/kb/195826/
)
CreateObject gagal dari script sisi klien
258512
(http://support.microsoft.com/kb/258512/
)
Cara mengotomatiskan Word dari Visual Basic untuk membuat gabungan surat untuk label surat
278260
(http://support.microsoft.com/kb/278260/
)
Cara menggunakan Microsoft Foundation Classes (MFC) untuk mengotomatisasi kata dan membuat gabungan surat untuk label surat
263247
(http://support.microsoft.com/kb/263247/
)
Cara mendapatkan ADO recordset dari XML
252767
(http://support.microsoft.com/kb/252767/
)
Bagaimana untuk mendapatkan representasi XML ADO recordset dalam Visual Basic
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:285176
(http://support.microsoft.com/kb/285176/en-us/
)
Seberapa besar upaya Anda untuk menggunakan artikel ini?
Sangat sedikit
Sedikit
Sedang
Besar
Sangat besar
Berikan saran tentang apa yang dapat kami lakukan untuk menyempurnakan informasi ini
Terima kasih! Masukan Anda akan digunakan untuk membantu kami meningkatkan konten dukungan. Untuk opsi bantuan lainnya, kunjungi Halaman Beranda Bantuan dan Dukungan.