Ik heb een MS Access applicatie waarvanuit een mailmerge in Word wordt aangemaakt.
De data staat in een aparte backend database waarin ook de juiste query staat voor de mailmerge.
Het probleem is nu dat ik bij het aanmaken van de mailmerge een error 5922 krijg ("Word was unable to open te datasource". Deze error komt alleen voor als ik in de query ook een functie aanroep in een VBA module. Verder werkt het wel als ik vanuit Word de mailmerge opbouw en de query in de access database gebruik.
Ik heb me uiteraard al een ongeluk gezocht naar de oplossingen op usenet e.d. maar nergens heb ik een antwoord kunnen vinden dat het probleem oplost.
De query met code ziet er ongeveer als volgt uit:
De code die gebruikt wordt bij het aanmaken van de mailmerge is ongeveer als volgt:
Iemand een idee aan wat dit zou kunnen liggen?
De data staat in een aparte backend database waarin ook de juiste query staat voor de mailmerge.
Het probleem is nu dat ik bij het aanmaken van de mailmerge een error 5922 krijg ("Word was unable to open te datasource". Deze error komt alleen voor als ik in de query ook een functie aanroep in een VBA module. Verder werkt het wel als ik vanuit Word de mailmerge opbouw en de query in de access database gebruik.
Ik heb me uiteraard al een ongeluk gezocht naar de oplossingen op usenet e.d. maar nergens heb ik een antwoord kunnen vinden dat het probleem oplost.
De query met code ziet er ongeveer als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
| SELECT M.MailingID AS MMMailingID, C.Initialen AS MMInitialen, C.Voornaam AS MMVoornaam, C.Tussenvoegsel AS MMTussenvoegsel, C.Achternaam AS MMAchternaam, C.Man, GetAdresByContactID(C.ContactID,IIf(IIf(IsNull(MC.Adres),0,MC.Adres)=0,C.StandaardAdres,MC.Adres),1) AS MMAdres, GetAdresByContactID(C.ContactID,IIf(IIf(IsNull(MC.Adres),0,MC.Adres)=0,C.StandaardAdres,MC.Adres),2) AS MMPostcode, GetAdresByContactID(C.ContactID,IIf(IIf(IsNull(MC.Adres),0,MC.Adres)=0,C.StandaardAdres,MC.Adres),3) AS MMPlaats, GetAdresByContactID(C.ContactID,IIf(IIf(IsNull(MC.Adres),0,MC.Adres)=0,C.StandaardAdres,MC.Adres),4) AS MMLand, O.Telefoon AS MMTelefoon, GetAdresByContactID(C.ContactID,IIf(IIf(IsNull(MC.Adres),0,MC.Adres)=0,C.StandaardAdres,MC.Adres),5) AS MMFax, M.MailingID FROM tblOrganisatie AS O RIGHT JOIN (tblMailing AS M INNER JOIN (tblContact AS C INNER JOIN tblMailingContact AS MC ON C.ContactID=MC.ContactID) ON M.MailingID=MC.MailingID) ON O.OrganisatieID=C.OrganisatieID; |
De code die gebruikt wordt bij het aanmaken van de mailmerge is ongeveer als volgt:
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
| sBackEnd = BackSlash(GetDbPathFromLink("tblMedewerker", Backend)) & Backend
strAttr = "DBQ=" & sBackEnd
DSNName = "RBSDSN"
DBEngine.RegisterDatabase DSNName, "Microsoft Access Driver (*.mdb)", True, strAttr
sConnection = "DSN=" & DSNName
sConnection = sConnection & ";DBQ=" & sBackEnd
sConnection = sConnection & ";DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"
S = "SELECT *"
S = S & " FROM `qryMM`"
S = S & " WHERE MMMailingID = " & GroupID
'Sortering aanbrengen
sOrder = GetField("tblMailing", "MailingSortering", "MailingID", Str(GroupID))
If Len(sOrder) > 0 Then
S = S & " ORDER BY " & sOrder
End If
.OpenDataSource Name:=sBackEnd, ConfirmConversions:=False, _
ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", WritePasswordDocument:="", _
WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:=sConnection, SQLStatement:= _
S, SQLStatement1:="" |
Iemand een idee aan wat dit zou kunnen liggen?
[ Voor 6% gewijzigd door Peetman op 14-11-2005 13:46 ]