Hoe maak ik een Word-document actief vanuit Access?

Status
Niet open voor verdere reacties.
Ik wil eigenlijk doen wat je met een mail merge in Word doet :) Een standaard-mail (maar met sommige variabele gegevens) sturen naar verschillende adressen. De adressen en variabele gegevens komen uit een query.
 
probeer aan het begin even dim r as recordset toe te voegen.

Hoe doe ik dat? Ja, zoals je merkt, ik ben dus een totale leek he. Probleem is dat ik VBA feitelijk maar sporadisch nodig heb. Het kan natuurlijk ook allemaal manueel (Word openen, mail merge uitvoeren, mailtjes afdrukken in Outlook), maar ik zou dat wat meer willen automatiseren.
 
Als jullie het niet erg vinden, ben ik de draad helemaal kwijt :). Geen idee meer waar het nu over gaat; het is helemaal niet moeilijk om vanuit Access een rapport te mailen naar verschillende personen, en/of dat rapport ook nog af te drukken. Dus wat is in Zeus's naam eigenlijk het probleem?
 
Hoe doe ik dat? Ja, zoals je merkt, ik ben dus een totale leek he..
Je hebt de code gekopieerd naar onder een knop neem ik aan. Als je dan naar de [gebeurtenis opbouwen] bij die knop gaat (rechter muis knop) dan zie je de code. aan het begin kan je dan de recordset defineren.

Word openen, mail merge uitvoeren, dit is samen een rapportje draaien
mailtjes afdrukken in Outlook dit is de mail versturen en printen

plaats een voorbeeldje van je word mail-merge en dan kunnen we je misschien concreter helpen. want een mailmerge in word levert toch geen mailtjes maar een aantal gevulde word documenten (lees acces rapportjes)
 
want een mailmerge in word levert toch geen mailtjes maar een aantal gevulde word documenten (lees acces rapportjes)
En het wordt al gekker en gekker.... Je kunt prima gelijk een mailmerge doen vanuit Word. Mits je uiteraard het juiste veld gebruikt met het email adres. Maar ik haak zo langzamerhand af :D.
Pak de draad wel weer op als TS uiteindelijk besluit om het toch maar in Access te maken...
 
Hoe ik het doe, maakt mij eigenlijk niet uit. Als ik het goed voorheb, geven beide manieren hetzelfde resultaat, namelijk mails versturen vanuit Outlook. Je kan inderdaad ook mailtjes versturen via de mail merge - functie in Word. Maar de code daarvoor werkt niet om één of andere reden. Ik heb echt niet meer functionaliteit nodig dan degene die Word voorziet. Als ik die functionaliteit zou kunnen aansturen vanuit Access, ben ik tevreden.


Code:
Private Sub Mail_merge_starten_Click()

Refresh

DoCmd.SetWarnings False

Dim WordApp As Object
Set WordApp = CreateObject("word.Application")
WordApp.Documents.Open "C:\Users\Tom\Desktop\Test\Resources\Opvragen officieel bewijs - NL.docm"
WordApp.Visible = True

    With WordApp
        .ActiveDocument.MailMerge.OpenDataSource _
            Name:="C:\Users\Tom\Desktop\Test\Notarissen - opzoeken en opvolgen.accdb", _
            LinkToSource:=True, Connection:="Opvraging - te versturen", _
            SQLStatement:="SELECT * FROM [Opvraging - te versturen] WHERE Taal = ""N"""
        .ActiveDocument.MailMerge.Execute
       
       
    End With
End Sub

Als ik dit laat lopen, opent hij het mail merge document, en nog een tweede Word-doc met de resultaten van de mail merge.

Ik heb al dit geprobeerd:

Code:
.ActiveDocument.Mailmerge.Destination = wdSendToPrinter
.ActiveDocument.MailMerge.Execute

Maar dat lukt niet.
 
Laatst bewerkt:
En nog vreemder: als ik een macro maak ik Word die de mail merge uitvoert naar de printer, en die macro aanroep vanuit Access, lukt het perfect.

Als ik die Word-macro aanpas zodat hij eerst een mail merge via e-mail doet, en daarna diezelfde afdrukt, slaat hij vast op het e-mailgedeelte, met deze melding:

Bekijk bijlage 248897

Als ik de macro (e-mailen en printen) laat lopen vanuit Word, lukt het ook.

Ik kan het ook allemaal niet meer volgen hoor :)
 
Laatste keer en dan haak ik echt af: wat is er op tegen om een Access rapport te maken, en dat te mailen? Ik snap het echt niet meer...
 
Laatste keer en dan haak ik echt af: wat is er op tegen om een Access rapport te maken, en dat te mailen? Ik snap het echt niet meer...

Helemaal niets op tegen, maar kan je de body van het rapport ook doen verschijnen in de body van de e-mail? Zou inderdaad ook een optie zijn: rapport maken op basis van dezelfde query die ik gebruik voor mijn mail merge, en dat dan mailen naar de ontvangers in die query.

Ik zou een versimpelde versie van de database in bijlage steken, maar het bestandje is - zelfs geZIPt - te groot.
 
eerst even comprimeren en herstellen voordat je hen afsluit na het kleiner maken. dat schoont een hoop op.

kan je wel een voorbeeldje van je word document of je gewenste mail output geven?
 
hmm daar mag ik niet heen van mijn baas. ik probeer er vanavond thuis even naar te kijken.
plaatjes van de mailoutput blijft leuk :)
 
Brrr, ik krijg inderdaad ook de kriebels als ik dit lees. Gewoon in MS Access een formuliertje gebruiken om een (of meerdere) standaard mailtjes via outlook te versturen en ondertussen daarvan verborgen eerst automatisch een PDf copie maken en opslaan op de PC ter archivering lijkt mee een veel snellere, simpelere en milieuvriendelijker oplossing. Ik zie het al gebeuren dat uw baas later zegt om al die papieren nog eens in te scannen en digitaal te archiveren. :shocked:
 
Tuurlijk, geen enkel probleem.

En hoe doe ik dat dan? :) Ik heb natuurlijk al op het internet zitten zoeken, maar nog geen duidelijk (voor mij) antwoord gevonden.

Een voorbeeld-databaseje zou misschien helpen? Ik heb al hulp gekregen van Jwaque, maar dat zijn mailtjes waar ik geen opmaak kan toevoegen aan de body van de e-mail.
 
De bedoeling is dat jij een bruikbaar voorbeeldje post; als je niet in staat bent om voorbeeldjes die je van ons krijgt in te bouwen, dan heeft het niet zo veel zin om nog meer voorbeelden in de strijd te gooien. Je eigen bestandje overigens bevatte wel érg weinig informatie; het formulier bevat één knop die niks doet. Zou ik overigens ook niet doen, zonder code :). Op zijn minst verwacht ik tabellen op basis waarvan je een rapport hebt gemaakt, en die je wilt omzetten naar een mail.
 
Ik heb een nieuwe versie voorzien, met een rapportje erbij. Het is dus de bedoeling dat de gegevens per record in de body van een emailbericht gestuurd worden, telkens naar het e-mailadres dat in dat record opgegeven wordt (in mijn voorbeeld is het 3 x hetzelfde, het mijne).

https://www.dropbox.com/s/n44zx7m0l31cenl/Test.zip?dl=0

Dat van die 'lege' knop wist ik. Ik wou daar zelf nog code achter steken.

Trouwens misschien dat ik zelf wel code kan aanpassen he :) Ik kan het ondertussen wel al wat lezen (ik 'begrijp' de code van Jwaque bv. wel), dus misschien dat ik bestaande code ook wel kan aanpassen. Als ze eenvoudig genoeg is ;)
 
Laatst bewerkt:
ik lees even mee hoe de opmaak van de mail nog beter kan. Ik lees wel iets over outlook templates
Code:
Set OutMail = OutApp.CreateItemFromTemplate("C:\My\Path\MyTemplate.oft")
maar als ik dat zo invoer werkt het niet. Maar ik heb dan ook nooit eerder met een template gewerkt dus misschien werkt dat gewoon net iets anders.
 
Om even te laten zien hoe je een recordset uitleest, hier een code om je tabel uit te lezen.
Code:
Dim rst As DAO.Recordset
Dim sTekst As String, sWaarde As String
Dim i As Integer
    Set rst = CurrentDb.OpenRecordset("Opvraging - te versturen")
    With rst
        Do While Not .EOF
            If sTekst = "" Then
                For i = 0 To .Fields.Count - 1
                    If Not sTekst = "" Then sTekst = sTekst & vbTab
                    sTekst = sTekst & .Fields(i).Name
                Next i
            Else
                For i = 0 To .Fields.Count - 1
                    If Not sWaarde = "" Then sWaarde = sWaarde & vbTab
                    sWaarde = sWaarde & .Fields(i).Value
                Next i
                sTekst = sTekst & vbLf & sWaarde
            End If
            .MoveNext
        Loop
        MsgBox sTekst
    End With
Ik zou de output in een HTML tabel zetten voor het mooie, maar daar gaat het nu nog even niet om.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan