Adres Mektup Birleştirme oluşturmak için Visual Basic ile Word'i otomatikleştirme

Özet

Bu makalede, dış veri kaynağı için adres mektup birleştirme oluşturmak üzere Word'ün nasıl otomatikleştirılacağı açıklanır. Bu makalede OLEDB, ODBC ve dinamik veri değişimi (DDE) ile verilere erişim arasındaki kod farkları da açıklanmaktadır.

Daha Fazla Bilgi

Veri erişim yöntemleri

Word adres mektup birleştirme belgesi için program aracılığıyla veri kaynağı ayarlamak için, önce MailMerge nesnesinin OpenDataSource yöntemini çağırırsınız. OpenDataSource yönteminin söz dizimi aşağıdaki gibidir:

<MailMergeObject>.OpenDataSource(Name, [Format], [ConfirmConversions], [ReadOnly], [LinkToSource], [AddToRecentFiles], [PasswordDocument], [PasswordTemplate], [Revert],[WritePasswordDocument], [WritePasswordTemplate], [Connection], [SQLStatement], [SQLStatement1], [OpenExclusive], [SubType]) 

Not

Her bağımsız değişkenin tam açıklaması için Microsoft Word Visual Basic çevrimiçi Yardımı'na bakın. Dış veri kaynağına bağlanmak için birincil ilgi alanı Ad, Bağlantı ve Alt Tür bağımsız değişkenleridir. Bu üç bağımsız değişkenin farklı birleşimleri, adres mektup birleştirme için farklı veri erişim yöntemlerini temsil eder.

OLEDB kullanma

OLEDB, önerilen veri erişim yöntemidir. OpenDataSource ile veri erişim yöntemi olarak OLEDB'yi belirtmek için Ad bağımsız değişkenini veritabanına veya Bir Office DataSource Bağlantısına (.odc) yol ve dosya adını sağlayın. Ad bağımsız değişkeni için bir veritabanı sağlarsanız, veritabanı biçimini destekleyen bir OLEDB sağlayıcısı yüklüyse Word otomatik olarak OLEDB kullanır.

Örnek

<MailMergeObject>.OpenDataSource Name:="C:\MyDB.mdb", _
           SQLStatement:="SELECT * FROM [MyTable]"

veya

<MailMergeObject>.OpenDataSource Name:="C:\MyDataSource.odc", _
           SQLStatement:="SELECT * FROM [MyTable]"

Word ve diğer Office XP uygulamaları, dış veri kaynaklarına OLEDB erişimi için Office DataSource Nesnesini (ODSO) kullanır. ODSO, Word'in adres mektup birleştirme için OLEDB kullanarak verilere erişebildiği tek mekanizmadır. ODSO, OpenDataSource için Ad bağımsız değişkeninin bir veritabanının tam yolu veya geçerli bir ODC dosyasının tam yolu olmasını gerektirir. ODSO, Bağlantı bağımsız değişkenindeki tüm bilgileri yoksayar.

ODBC kullanma

Sistemde kullanıcı veri kaynağı adının (DSN) ayarlandığı verilere erişmek için adres mektup birleştirme işleminizde ODBC kullanabilirsiniz. OpenDataSource ile veri erişim yöntemi olarak ODBC belirtmek için Ad bağımsız değişkeni için boş bir dize, Bağlantı bağımsız değişkeni için bir ODBC bağlantı dizesi ve Alt Tür bağımsız değişkeni için wdMergeSubTypeWord2000 sağlayın.

Örnek

<MailMergeObject>.OpenDataSource Name:= "", _
     Connection:= "DSN=MySQLServerDSN;DATABASE=pubs;uid=sa;pwd=;", _
     SQLStatement:= "Select au_id, au_lname, au_fname from authors", _
     SubType:= wdMergeSubTypeWord2000

DDE kullanma

Microsoft Access veritabanlarındaki veya Microsoft Excel çalışma kitaplarındaki verilere erişmek için DDE kullanabilirsiniz. OpenDataSource ile veri erişim yöntemi olarak DDE'yi belirtmek için, Veritabanı veya Ad bağımsız değişkeninin çalışma kitabının yolunu ve dosya adını ve Alt Tür bağımsız değişkeni için wdMergeSubTypeWord2000'i sağlayın.

Örnek

<MailMergeObject>.OpenDataSource Name:="C:\MyDB.mdb", _
           SQLStatement:="SELECT * FROM [MyTable]", _
           SubType:=wdMergeSubTypeWord2000

Otomasyon örneği

Aşağıdaki örnek kod, OLEDB kullanarak (ODSO yoluyla) form mektupları için adres mektup birleştirme oluşturur ve yürütür. Kullanılan veri kaynağı örnek Access veritabanı Northwind.mdb'dir. Northwind yüklü değilse Microsoft Access 2002 veya Microsoft Office Access 2003'ü başlatın. Yardım menüsünde Örnek Veritabanları'na tıklayın ve ardından Northwind Örnek Veritabanı'nı seçerek bu özelliği yükleyin.

Bu örneği çalıştırmak için şu adımları izleyin:

  1. Visual Basic'te yeni bir Standart EXE projesi başlatın. Varsayılan olarak Form1 oluşturulur.

  2. Proje menüsünde Başvurular'a tıklayın.

  3. Başvuru listesinde Microsoft Word 2000 Nesne Kitaplığı'na ve ardından Tamam'a tıklayın.

    Not Microsoft Office Word 2003 Nesnesi'ni kullanmak için, başvuru listesine Microsoft Word 11.0 Nesne Kitaplığı'nı ekleyin ve ardından Tamam'a tıklayın.

  4. Form1'e CommandButton denetimi ekleyin.

  5. Form1 için kod modülüne aşağıdaki kodu ekleyin.

    Not Gerekirse, Northwind.mdb yolunu Office XP yüklemenizle eşleşecek şekilde değiştirin.

    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
    
  6. Programı çalıştırmak için F5 tuşuna basın.

  7. Adres mektup birleştirmeyi gerçekleştirmek için Form1'de CommandButton denetimine tıklayın.

Kod tamamlandığında, Word yeni bir belge açıkken görünür hale getirilir. Yeni belge, Northwind.mdb'deki Müşteriler tablosundan ayıklanan verileri içeren adres mektup birleştirme işleminden kaynaklanan form mektuplarını içerir.

Başvurular

Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntüleyin:

285176 SQL Server'den XML kullanarak istemci tarafı Adres Mektup Birleştirme gerçekleştirmek için Word'i otomatikleştirme