StephaanKemp
Nieuwe gebruiker
- Lid geworden
- 13 jul 2015
- Berichten
- 4
ik probeer een mailmerge op te zetten vanuit een xlsm. Omdat in dezelfde xlsm ook e-mailing gedaan wordt wil ik de briefmailing ook via deze weg.
personen die een mailadres hebben maar aangeven geen mails te willen, krijgen een brief (code wenstmail = 0).
ik heb een aantal oplossingen gevonden en getest maar ik blijk vast te lopen op het openen van de query om de filtering te doen van de data.
het documenten testtabel.docx is gelinkt met de tabel in de xlsm met het normale opzetten van een wordmailmerge . Als ik die uitvoer gaat alles prima. Dus de link tussen het worddoc en de exceldata zijn ok.
[/CODE]
ik heb nog andere versies van bovenstaande geprobeerd, zonder de provider etc maar zonder succes.
mogelijk zit het in de odbc link want van wat ik online kan vinden is dit al voldoende om het te doen werken of mix is odbc met DDE of iets dergelijks.
ik heb gemerkt dat als ik op de opendatasource-lijn kom dat er dan een dialoogvenster opent. Als ik zoals deze op de c:\ temp werk, krijg ik de melding dat het aanmelden op odbc niet gelukt is. Als ik de gegevens op bvb c:\documenten\mailing\vba zet dan opent een ander soort dialoogvenster die probeert c:\documenten\mailing.xls te openen. Zelfs als ik het pad er volledig in zet "c:\documenten\mailing\vba" dan nog lijkt de laatste map verloren te gaan en wordt er xls geplakt aan de voorlaatste mapnaam.
ik ben er ook nog niet uit hoe ik de Select From moet opzetten om naar de tabel te verwijzen. de schuine quotes `` moeten er zeker staan maar moet de tabelreferentie met of zonder rechte haken? Ik heb ook op een aantal sites info gevonden dat je naar een named range moet verwijzen, maar dat geeft hetzelfde resultaat. Als ik de filtering wil doen zou mijn selectstatement nog
moeten hebben maar ik dacht eerst te testen met de volledige database. Als dat werkt kan de filtering geactiveerd worden.
Volgens wat ik kan vinden op verschillende sites moet het mogelijk zijn om een macro te starten in een xl die een word-doc opent dat voor het ophalen van de data linked met de xlsm vanwaar de macro gestart is. op sommige sites suggereert men ook het gebruik van een dotx template maar dat maakt weinig veschil.
ik voeg zowel het worddoc als de xlsm toe
hopelijk kan iemand mij in de juiste richting sturen
personen die een mailadres hebben maar aangeven geen mails te willen, krijgen een brief (code wenstmail = 0).
ik heb een aantal oplossingen gevonden en getest maar ik blijk vast te lopen op het openen van de query om de filtering te doen van de data.
het documenten testtabel.docx is gelinkt met de tabel in de xlsm met het normale opzetten van een wordmailmerge . Als ik die uitvoer gaat alles prima. Dus de link tussen het worddoc en de exceldata zijn ok.
Code:
[CODE]wordPath = "c:\temp\testtabel.docx"
Set wordApp = CreateObject("Word.Application")
Set wordDoc = wordApp.Documents.Open(wordPath)
Set wordMailMerge = wordDoc.MailMerge
wordMailMerge.OpenDataSource Name:=ThisWorkbook.FullName, _
ConfirmConversions:=False, ReadOnly:=True, LinkToSource:=True, _
AddToRecentfiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\temp\testmerge.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:E" _
, SQLStatement:="SELECT * FROM `[Tabel1]`"
wordMailMerge.Execute
wordDoc.Close
wordApp.Visible = True
ik heb nog andere versies van bovenstaande geprobeerd, zonder de provider etc maar zonder succes.
mogelijk zit het in de odbc link want van wat ik online kan vinden is dit al voldoende om het te doen werken of mix is odbc met DDE of iets dergelijks.
Code:
OpenDataSource Name:=strWorkbookName, ReadOnly:=True, _
LinkToSource:=False, AddToRecentfiles:=False, _[ATTACH]332626[/ATTACH][ATTACH]332625[/ATTACH][ATTACH]332626[/ATTACH][ATTACH]332625[/ATTACH]
Format:=wdOpenFormatAuto, _
SQLStatement:="SELECT * FROM `Tabel1`", _
SubType:=wdMergeSubTypeAccess
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
ik heb gemerkt dat als ik op de opendatasource-lijn kom dat er dan een dialoogvenster opent. Als ik zoals deze op de c:\ temp werk, krijg ik de melding dat het aanmelden op odbc niet gelukt is. Als ik de gegevens op bvb c:\documenten\mailing\vba zet dan opent een ander soort dialoogvenster die probeert c:\documenten\mailing.xls te openen. Zelfs als ik het pad er volledig in zet "c:\documenten\mailing\vba" dan nog lijkt de laatste map verloren te gaan en wordt er xls geplakt aan de voorlaatste mapnaam.
ik ben er ook nog niet uit hoe ik de Select From moet opzetten om naar de tabel te verwijzen. de schuine quotes `` moeten er zeker staan maar moet de tabelreferentie met of zonder rechte haken? Ik heb ook op een aantal sites info gevonden dat je naar een named range moet verwijzen, maar dat geeft hetzelfde resultaat. Als ik de filtering wil doen zou mijn selectstatement nog
Code:
WHERE `wenstmail` = 0
Volgens wat ik kan vinden op verschillende sites moet het mogelijk zijn om een macro te starten in een xl die een word-doc opent dat voor het ophalen van de data linked met de xlsm vanwaar de macro gestart is. op sommige sites suggereert men ook het gebruik van een dotx template maar dat maakt weinig veschil.
ik voeg zowel het worddoc als de xlsm toe
hopelijk kan iemand mij in de juiste richting sturen