Toon posts:

[VB][Access][Word]Tabel mergen naar Word vanuit VB

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik schrijf vanuit VB een aantal gegevens in een Access db. Daarna wil ik mbv een .dot (word-sjabloon) de gegevens samenvoegen naar Word. Het moet op basis van een sjabloon ivm met layouts e.d.

Ik heb dit
code:
1
2
3
4
5
6
7
8
9
10
11
12
    Dim objWord As New Word.Document
    
    With objWord.mailmerge
      .MainDocumentType = wdFormLetters
      .OpenDataSource _
        Name = App.Path & "\Data\data.mdb", _
        LinkToSource = True, AddToRecentFiles:=False, _
        Connection:="TABLE Word"
      .Application.Documents.Open (App.Path & "\Templates\overzicht.dot")
      .Application.Visible = True
      .Application.Activate
    End With

Hier krijg ik de fout "Method Mailmerge of object _Document failed :? Zal wel weer een stomme fout zijn of helemaal verkeerd geprogrammeerd maar ik weet et niet...??

Iemand ?

  • baskabas
  • Registratie: December 2000
  • Laatst online: 05-04 12:26
Ik heb geen idee of je code enigsinds klopt, maar heb je al eens gekeken naar de code die Word zelf genereerd?

Ik neem, als ik met office aan de slag ga, eerst een macro op terwijl ik de gewenste acties handmatig uitvoer... in die vb macro zit dan meestal wel wat (1% ;)) handige code die ik kan gebruiken... anders zoek je je een bult!

Succes!

Verwijderd

Topicstarter
Heb nu dit, is de code van de macro die een samenvoegbestand maakt maar ik krijg nog steeds dezelfde melding. Ik heb wel de References "Ms Office 9.0 Object Library" en "Ms Word 9.0 Object Library" aangevinkt.
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
    Dim objWord As New Word.Document

    objWord.mailmerge.MainDocumentType = wdFormLetters
    objWord.mailmerge.OpenDataSource Name:= _
      "C:\Overzicht\Data\data.mdb", ConfirmConversions:=False, ReadOnly _
      :=False, LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:= _
      "", PasswordTemplate:="", WritePasswordDocument:="", _
      WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
      Connection:="TABLE Word", SQLStatement:="SELECT * FROM [Word]", _
      SQLStatement1:=""
    With objWord.mailmerge
      .Destination = wdSendToNewDocument
      .MailAsAttachment = False
      .MailAddressFieldName = ""
      .MailSubject = ""
      .SuppressBlankLines = True
      With .DataSource
        .FirstRecord = wdDefaultFirstRecord
        .LastRecord = wdDefaultLastRecord
      End With
      .Execute Pause:=True
    End With
    Windows("overzicht.dot").Activate
    objWord.Close

De paden staan nu hard gecodeerd maar die worden dynamisch (dat is ook niet et probleem dus ;))

Ik krijg nu nog steeds de fout "Method Mailmerge of object _Document failed" :?

  • baskabas
  • Registratie: December 2000
  • Laatst online: 05-04 12:26
dan mot je ff debuggen om er achter te komen welke regel de bottleneck is...

(breakpoint zetten en met F8 door code lopen...)

Verwijderd

Topicstarter
Mmm kom er niet echt uit. Heb et nu weer anders gemaakt maar nu wordt alleen Access geopend en verder niets :(
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
29
Dim WordDoccie As New Word.Application

With WordDoccie.Documents.Add(App.Path & "\Templates\overzicht.dot", , , Visible = True)
    '.ActiveDocument
    
    .mailmerge.MainDocumentType = wdFormLetters
    '.ActiveDocument
    .mailmerge.OpenDataSource Name:= _
      "C:\VanLagenOverzicht\Data\data.mdb", ConfirmConversions:=False, ReadOnly _
      :=False, LinkToSource:=True, AddToRecentFiles:=False, PasswordDocument:= _
      "", PasswordTemplate:="", WritePasswordDocument:="", _
      WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _
      Connection:="TABLE Word", SQLStatement:="SELECT * FROM [Word]", _
      SQLStatement1:=""
    With .mailmerge
      .Destination = wdSendToNewDocument
      .MailAsAttachment = False
      .MailAddressFieldName = ""
      .MailSubject = ""
      .SuppressBlankLines = True
      With .DataSource
        .FirstRecord = wdDefaultFirstRecord
        .LastRecord = wdDefaultLastRecord
      End With
      '.Execute Pause:=True
    End With

    
End With

Weet er nu niemand hoe ik vanuit VB moet mergen?? Ik heb dus ook al gezocht maar dan vind je ook 3 topics waar ook geen antwoord op komt :'(

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Heb je zelf al eens handmatig de mailmerge geprobeerd uit te voeren en lukt dat wel?

Ik gebruik de volgende code in een document dat al een MainDocument heeft:
code:
1
2
3
4
5
6
7
8
9
10
11
12
        With docMail_INUIT.MailMerge
            ' zet de juiste datasource
            strBoodschap = "Er is een fout opgetreden bij het voorbereiden van de Mailmerge"
            .OpenDataSource Name:=strClientDBPadNaamExt _
              , ConfirmConversions:=False, ReadOnly:=True, LinkToSource:=True _
              , AddToRecentFiles:=False, Connection:=strTypeDataBron_IN & " " & strQueryDefOfTabelNaam_IN _
              , SQLStatement:=strSQLDeel_1, SQLStatement1:=strSQLDeel_2
            ' voer de MailMerge uit
            strBoodschap = "Er is een fout opgetreden bij het uitvoeren van de Mailmerge"
            .Execute
            blnResult = True
        End With
Pagina: 1