Wordin automatisoiminen Visual Basicilla yhdistämisen luomiseksi
Yhteenveto
Tässä artikkelissa käsitellään Wordin automatisoimista ulkoisen tietolähteen yhdistämisen luomiseksi. Tässä artikkelissa kerrotaan myös koodieroista OLEDB-, ODBC- ja DDE-tietojen välillä.
Lisätietoja
Tietojen käyttötavat
Jos haluat määrittää tietolähteen Wordin yhdistämisasiakirjaa varten, kutsu ensin MailMerge-objektin OpenDataSource-menetelmää. OpenDataSource-menetelmän syntaksi on seuraava:
<MailMergeObject>.OpenDataSource(Name, [Format], [ConfirmConversions], [ReadOnly], [LinkToSource], [AddToRecentFiles], [PasswordDocument], [PasswordTemplate], [Revert],[WritePasswordDocument], [WritePasswordTemplate], [Connection], [SQLStatement], [SQLStatement1], [OpenExclusive], [SubType])
Huomautus
Lisätietoja jokaisesta argumentista on Microsoft Word Visual Basicin online-ohjeessa. Ulkoiseen tietolähteeseen yhdistämisen ensisijaisesti kiinnostavat argumentit Name, Connection ja SubType. Näiden kolmen argumentin erilaiset yhdistelmät edustavat yhdistämisen erilaisia tietojen käyttötapoja.
OLEDB:n käyttäminen
OLEDB on suositeltu tietojen käyttötapa. Jos haluat määrittää OPENDataSourcen tietojenkäyttömenetelmäksi OLEDB:n, anna Nimi-argumentti, jolla on polku ja tiedostonimi, joko tietokantaan tai Office DataSource -yhteyteen (.odc). Jos annat Tietokannan Nimi-argumentille, Word käyttää OLEDB-tietokantaa automaattisesti, jos tietokantamuotoa tukeva OLEDB-palvelu on asennettu.
Esimerkki
<MailMergeObject>.OpenDataSource Name:="C:\MyDB.mdb", _
SQLStatement:="SELECT * FROM [MyTable]"
TAI
<MailMergeObject>.OpenDataSource Name:="C:\MyDataSource.odc", _
SQLStatement:="SELECT * FROM [MyTable]"
Word ja muut Office XP -sovellukset käyttävät Office DataSource Object (ODSO) -objektia OLEDB:n pääsyyn ulkoisiin tietolähteisiin. ODSO on ainoa mekanismi, jonka avulla Word voi käyttää tietoja OLEDB:n avulla yhdistämistä varten. ODSO edellyttää, että OpenDataSource-kohteen Name-argumentti on joko täydellinen polku tietokantaan tai kelvollisen ODC-tiedoston täydellinen polku. ODSO ohittaa kaikki Connection-argumentin tiedot.
ODBC:n käyttäminen
Voit käyttää ODBC:tä yhdistämisessä tietoihin, joille on määritetty käyttäjän tietolähteen nimi (DSN) järjestelmään. Jos haluat määrittää ODBC:n tietojen käyttömenetelmäksi OpenDataSourcessa, anna tyhjä merkkijono Nimi-argumentille, ODBC-yhteysmerkkijono Connection-argumentille ja wdMergeSubTypeWord2000 SubType-argumentille.
Esimerkki
<MailMergeObject>.OpenDataSource Name:= "", _
Connection:= "DSN=MySQLServerDSN;DATABASE=pubs;uid=sa;pwd=;", _
SQLStatement:= "Select au_id, au_lname, au_fname from authors", _
SubType:= wdMergeSubTypeWord2000
DDE:n käyttäminen
DDE:n avulla voit käyttää Microsoft Access -tietokantojen tai Microsoft Excel -työkirjojen tietoja. Jos haluat määrittää DDE:n OpenDataSourcen tietojenkäyttömenetelmäksi, anna tietokannan polku ja tiedostonimi tai työkirja Name-argumentille ja wdMergeSubTypeWord2000 SubType-argumentille.
Esimerkki
<MailMergeObject>.OpenDataSource Name:="C:\MyDB.mdb", _
SQLStatement:="SELECT * FROM [MyTable]", _
SubType:=wdMergeSubTypeWord2000
Automaatiomalli
Seuraava mallikoodi luo ja suorittaa lomakekirjaimien yhdistämisen OLEDB:n avulla (ODSO:n avulla). Käytettävä tietolähde on Access-mallitietokanta Northwind.mdb. Jos Northwindia ei ole asennettu, käynnistä Microsoft Access 2002 tai Microsoft Office Access 2003. Valitse Ohje-valikostaMallitietokannat ja asenna sitten tämä ominaisuus valitsemalla Northwind-mallitietokanta.
Suorita tämä malli seuraavasti:
Aloita uusi Standard EXE -projekti Visual Basicissa. Oletusarvon mukaan Form1 luodaan.
Valitse Projekti-valikostaViittaukset.
Valitse Microsoft Word 2000 -objektikirjasto viittausluettelosta ja valitse sitten OK.
Huomautus Jos haluat käyttää Microsoft Office Word 2003 -objektia, lisää Microsoft Word 11.0 -objektikirjasto viittausluetteloon ja valitse sitten OK.
Lisää CommandButton-ohjausobjekti Form1:een.
Lisää seuraava koodi Form1:n koodimoduuliin.
Huomautus Jos se on tarpeen, muokkaa Northwind.mdb-polkua vastaamaan Office XP -asennustasi.
Dim WithEvents oApp As Word.Application Private Sub Form_Load() 'Start Word. Set oApp = CreateObject("Word.Application") End Sub Private Sub Command1_Click() Dim oMainDoc As Word.Document Dim oSel As Word.Selection Dim sDBPath as String 'Start a new main document for the mail merge. Set oMainDoc = oApp.Documents.Add With oMainDoc.MailMerge .MainDocumentType = wdFormLetters 'Set up the mail merge data source to Northwind.mdb. sDBPath = "C:\Program Files\Microsoft Office\" & _ "OfficeXP\Samples\Northwind.mdb" .OpenDataSource Name:=sDBPath, _ SQLStatement:="SELECT * FROM [Customers]" 'Add the field codes to the document to create the form letter. With .Fields Set oSel = oApp.Selection .Add oSel.Range, "CompanyName" oSel.TypeParagraph .Add oSel.Range, "Address" oSel.TypeParagraph .Add oSel.Range, "City" oSel.TypeText ", " .Add oSel.Range, "Country" oSel.TypeParagraph oSel.TypeParagraph oSel.TypeText "Dear " .Add oSel.Range, "ContactName" oSel.TypeText "," oSel.TypeParagraph oSel.TypeParagraph oSel.TypeText " This letter is to inform you..." oSel.TypeParagraph oSel.TypeParagraph oSel.TypeText "Sincerely, [Your Name Here]" End With End With 'Perform the mail merge to a new document. With oMainDoc .MailMerge.Destination = wdSendToNewDocument .MailMerge.Execute Pause:=False End With End Sub Private Sub oApp_MailMergeAfterMerge(ByVal Doc As Word.Document, ByVal DocResult As Word.Document) 'When the mail merge is complete, 1) make Word visible, '2) close the mail merge document leaving only the resulting document 'open and 3) display a message. Doc.Close False oApp.Visible = True MsgBox "Mail Merge Complete: " & oApp.ActiveDocument.Name End Sub Private Sub Form_Unload(Cancel As Integer) Set oApp = Nothing End Sub
Suorita ohjelma painamalla F5-näppäintä.
Suorita yhdistäminen napsauttamalla Form1:n CommandButton-ohjausobjektia .
Kun koodi on valmis, Word tulee näkyviin, kun uusi asiakirja avataan. Uusi asiakirja sisältää yhdistämisen tuloksena saatuja lomakekirjaimia, jotka sisältävät Northwind.mdb:n Asiakkaat-taulukosta poimittuja tietoja.
Lisätietoja
Lisätietoja on Microsoft Knowledge Base -tietokannan artikkelissa:
285176 Wordin automatisointi asiakaspuolen yhdistämisen suorittamiseksi SQL Server XML:n avulla