Adding 2 days to a mail merge field

R

Ren

I am merging a date from Access into Word and i want it to say the date two
days after the date in the database. I'm using the following for the merge
field:

{ Mergefield CourseDate \@ "d" } \* ordinal } { Mergefield CourseDate \@
"MMMM, yyyy" }

but i can't figure out where to add the "+2" bit.
 
P

Peter Jamieson

Unfortunately you cannot simply add 2 to a date using Word's "field
language".

If possible, create any extra dates you need in your data source - in the
case of Access, create a query that uses dateadd to add two days to the
date, then use that query as your data source.

Or you can use macropod's date field calculations - I think they are at
http://www.wopr.com/w3tfiles/10-249902-DateCalc.zip

There is also a page at http://tips.pjmsn.me.uk/t0004.htm which describes
other possibilities and which might help you if you use that dateadd
function.
 
G

Graham Mayor

Adding days to dates in fields is extremely complicated and not simply a
question of adding '2'. See macropod's document on the subject at
http://www.gmayor.com/downloads.htm#Third_party Copy the relevant field
construction to your document and in it replace DATE with Mergefield
CourseDate and set the delay to 2 which will give you something like:

{QUOTE
{SET Delay 2}
{SET a{=INT((14-{MERGEFIELD COURSEDATE \@ M})/12)}}
{SET b{={MERGEFIELD COURSEDATE \@ yyyy}+4800-a}}
{SET c{={MERGEFIELD COURSEDATE \@ M}+12*a-3}}
{SET d{MERGEFIELD COURSEDATE \@ d}}
{SET
jd{=d+INT((153*c+2)/5)+365*b+INT(b/4)-INT(b/100)+INT(b/400)-32045+Delay}}
{SET e{=INT((4*(jd+32044)+3)/146097)}}
{SET f{=jd+32044-INT(146097*e/4)}}
{SET g{=INT((4*f+3)/1461)}}
{SET h{=f-INT(1461*g/4)}}
{SET i{=INT((5*h+2)/153)}}
{SET dd{=h-INT((153*i+2)/5)+1}}
{SET mm{=i+3-12*INT(i/10)}}
{SET yy{=100*e+g-4800+INT(i/10)}}
"{dd}-{mm}-{yy}" \@ "d MMMM yyyy"}

which is why you need to copy it ;)

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
R

Ren

Thanks for both of your relpies - sounds like the most simple way is to add a
field into Access
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top