Word mail merge. Problem mit Excel

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Tomi G..

    Word mail merge. Problem mit Excel

    Hallo,

    habe schon einmal das Problem geschildert, doch es hat sich einiges geändert.

    Ich verwende in meinem Program Excel als Datenbank. Das bedeutet das ich beim Program Load die Exceldatei anspreche und die bis zum Close offen bleibt. Excel ist PW geschützt.

    Ich möchte den ausgewählten Eintrag in einem Word Serienbrief ausdrucken. Dies funktioniert auch mit meinem code.

    PROBLEM: sobald ich visible für Excel false setze verlangt es nach manueler PW eingabe.
    mache ich es true öffnet sich die Excel Datei erneuert ohne PW Abfrage.
    Ich will nicht das die User das PW wissen sonst macht die PW geschützte Datei keinen sinn.
    WAS IST DAS PROBLEM????

    Wo ist der unterschied zwischen Visible.true und Visible.false. Warum hat das Auswirkung auf ansprechen von Excel?

    mein mailmerge Code:

    VB.NET-Quellcode

    1. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    2. 'vorlage word!!!
    3. Dim objWord As New Word.Application
    4. Dim objBLAT As Word.Document
    5. objBLAT = objWord.Documents.Open("C:\Users\Tomislav\Documents\Leitungswege1.doc")
    6. Master.objExcel.Visible = True
    7. objWord.Visible = True
    8. objBLAT.MailMerge.MainDocumentType = WdMailMergeMainDocType.wdFormLetters
    9. objBLAT.MailMerge.OpenDataSource(Name:= _
    10. "C:\Users\Tomislav\Documents\TELANL BASIC EXE BACKGROUND.xls", _
    11. ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
    12. AddToRecentFiles:=False, PasswordDocument:="31000", PasswordTemplate:="31000", _
    13. WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
    14. Connection:="_FilterDatenbank", SQLStatement:= _
    15. "", SQLStatement1:="")
    16. Master.objExcel.Visible = False
    17. objWord.Visible = False
    18. With objBLAT.MailMerge
    19. .Destination = WdMailMergeDestination.wdSendToNewDocument
    20. .MailAsAttachment = False
    21. .MailAddressFieldName = ""
    22. .MailSubject = ""
    23. .SuppressBlankLines = True
    24. With .DataSource
    25. .FirstRecord = 4
    26. .LastRecord = 500
    27. End With
    28. objBLAT.MailMerge.DataSource.ActiveRecord = WdMailMergeActiveRecord.wdFirstRecord
    29. objBLAT.MailMerge.DataSource.FindRecord(FindText:=Me.TextBox1.Text, Field:="Durchwahl")
    30. objBLAT.MailMerge.ViewMailMergeFieldCodes = 9999998
    31. objBLAT.PrintOut()
    32. objBLAT.Close(False)
    33. objWord.Quit(False)
    34. End With
    35. End Sub


    Mit dem zwei Visible.False habe ich es zum laufen gebracht aber Word und Excel sollten von anfang an nicht visible sein!!

    DANKE
    Tomi G.

    Tomi G. schrieb:

    er soll auf die bereits offene Excel zugreifen?
    Lass das Programm Exel selbst öffnen, öffne es nicht schon vorher.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!