Serienbrief mit VB6

  • VB6

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Serienbrief mit VB6

    Guten Tag zusammen,

    und ein gutes Neues Jahr.

    Ich muss einem bestehenden Prg. (VB6 Sp6) eine Serienbrieffunktion hinzufügen.

    Das Hauptdokument ist in Word 2010 erstellt, die Datenbank in Access 2010 ebenso.

    Unter Word funktioniert der Ablauf tadellos! Ebenso der Ausdruck.

    Unter VB6 läuft das Prg. fehlerfrei ab, (Word wird gestartet, das
    DOC geöffnet, neues DOC erzeugt...) allerdings wird KEIN AUSDRUCK
    ERZEUGT!


    Wo liegt mein Denkfehler? Ich krieg das Ding nicht zum Drucken!

    Grüsse

    Peter

    Meine SUB sieht wie folgt aus:

    Visual Basic-Quellcode

    1. Private Sub XX()
    2. Dim swordfilename As String
    3. swordfilename = "E:\....\rech_kal.docx"
    4. Dim wApp As Object ' Word-Objekt Variable definieren und erzeugen
    5. Set wApp = CreateObject("Word.Application.14") 'VERWEIS auf WORD ist in VB gesetzt!
    6. With wApp
    7. .Application.Visible = True ' Word anzeigen
    8. .Application.Activate
    9. .Documents.Open swordfilename ' Word-Dokument laden und anzeigen
    10. .Documents(swordfilename).Activate
    11. .ActiveDocument.MailMerge.OpenDataSource Name:="E:\...\zeilendb.mdb", SQLStatement:="SELECT * FROM [puffer]"
    12. With .ActiveDocument.MailMerge
    13. With .DataSource
    14. .FirstRecord = wdDefaultFirstRecord
    15. .LastRecord = wdDefaultLastRecord
    16. End With
    17. .SuppressBlankLines = True
    18. .Execute ' Pause:=False
    19. .Destination = 1 '= wdSendToNewDocument
    20. End With
    21. End With
    22. ' nach getaner Arbeit, Word wieder beenden
    23. wApp.ActiveDocument.Saved = True
    24. wApp.NormalTemplate.Saved = True
    25. wApp.Application.Quit savechanges:=wdDoNotSaveChanges
    26. Set wApp = Nothing
    27. End Sub


    CodeTags gesetzt ~VaporiZed

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    ich sehe nix, was ich für einen Druck-Befehl halten würde.
    Ach, vlt. zeile#19.
    Dass dieses MailMergeDings unter der Einstellung wdSendToNewDocument an den Drucker mailMerged??
    Dann ist vilt die Reihenfolge falsch, also dass man erst die .Destination setzen sollte, bevor man .Execute aufruft.

    (aber alles nur geraten, mit so Zeug habich nix am Hut)

    pgroener@s.netic.de schrieb:

    .FirstRecord = wdDefaultFirstRecord
    .LastRecord = wdDefaultLastRecord
    Hast du Option Explicit nicht aktiviert?
    Da folgt die Strafe auf dem Fuß.

    Die Konstanten wdDefaultFirstRecord und wdDefaultLastRecord sind in VB6 nicht definiert.
    Setz da die Werte 1 und -16 ein.
    docs.microsoft.com/de-de/offic….wdmailmergedefaultrecord
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Da folgt die Strafe auf dem Fuß. Die Redensart kannte ich auch noch nicht. Wie muss man sich das vorstellen?


    „Kleine Sünden bestraft der liebe Gott sofort.“, sagt man bei uns
    Sorry musste sein.
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.