[VBA] Mailmerge uitvoeren en losse documenten opslaan

Pagina: 1
Acties:
  • 407 views sinds 30-01-2008
  • Reageer

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 04:31
Ik wil in MS Access een query uitvoeren en deze in MS Word gebruiken als datasource voor een mailmerge. Ik exporteer hiervoor de query naar een RTF-bestand dat als datasource voor de mailmerge-actie wordt gebruikt.

In de query zitten een onbekend aantal records, elk record bestaat minimaal uit een emailadres. Ik wil voor elk record een apart Word-document genereren en dit document opslaan onder het naam van het emailadres van het actieve record. Dit laatste krijg ik niet aan de gang.

Onderstaande is de code tot nu toe:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        Dim i As Integer
        i = 0
        While (i < intAantalrecords)
            Set objWord_Document = objWord_applicatie.Documents.Open(CurrentProject.Path & "\" & strBriefnaam)
            With objWord_applicatie.ActiveDocument.MailMerge
                .OpenDataSource (CurrentProject.Path & "\" & strDatasourcenaam)
                .Destination = 0
                .SuppressBlankLines = True
                With .DataSource
                    .FirstRecord = i + 1
                    .LastRecord = i + 1
                End With
                .Execute Pause:=False
            End With
            Set objWord_Document = objWord_applicatie.Documents.Item(1)
            MsgBox (objWord_Document.Mergefield("EMAIL"))
            
            'Schrijf het bestand weg naar de directory
            Dim fso As New FileSystemObject
            If (fso.FolderExists(CurrentProject.Path & "\" & strDirectorynaam) = False) Then
                fso.CreateFolder (CurrentProject.Path & "\" & strDirectorynaam)
            ElseIf (fso.FileExists(CurrentProject.Path & "\" & strDirectorynaam & "\" & ?????????? & ".doc") = True) Then
                fso.DeleteFile (CurrentProject.Path & "\" & strDirectorynaam & "\" & ?????????? & ".doc")
            End If
            objWord_Document.SaveAs (CurrentProject.Path & "\" & strDirectorynaam & "\" & ?????????? & ".doc")
            objWord_applicatie.ActiveDocument.Close (wdDoNotSaveChanges)
            i = i + 1
        Wend


Op de plaats waar de vraagtekens staat moet dus het emailadres van het desbetreffende record komen. Wie weet of/hoe ik dit kan realiseren?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Heb je deze code in Word of in Access staan?

Word: neem de waarde van het invoegveld dat je hebt gebruikt
Access: neem het veld e-mailadres van het huidige record

My personal website