Welcome toWord.Tips.Net
Ask a Word Question
Make a Comment
Learn Access Now
Free Printable Forms
Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Legal Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Wedding Tips
Word2007 Tips
WordTips
Collapsing and Expanding Subdocuments
Volker is having a problem comparing dates in a merge field. His database contains a Birthdate field, which (obviously) contains a birth date for each person in the database. As he merges each record, he wants to compare the Birthdate field to a reference date, and then take some action based on the result. The logic he is attempting to use looks like this:
{IF {MERGEFIELD Birthdate} > "10/4/1976" "Under 30" "Over 30"}
The problem is that the comparison doesn't work properly; it doesn't return consistent results. One possible solution is to use a format switch in the merge field, in the following manner:
{IF {MERGEFIELD Birthdate\@"MM/DD/YYYY"} > "10/04/1976" "Under 30" "Over 30"}
This puts the incoming information into a comparable format. The results you get from this approach may depend, however, on characteristics of the data source, independent of Word. You could also try putting the dates into a year-first format, such as the following:
{IF {MERGEFIELD Birthdate\@"YYYY/MM/DD"} > "2006/10/04" "Under 30" "Over 30"}
If the comparison still yields inconsistent results, then the only solution may be to do a mathematical conversion on the date (actually, on both Birthdate and the reference date) so that you have an actual numeric comparison. You can do this by converting the date into a Julian value, which requires a very complex merge field, like the one shown here:
{IF {QUOTE {SET a{=INT((14-{MERGEFIELD BIRTHDATE \@ M})/12)}}
{SET b{={MERGEFIELD BIRTHDATE \@ yyyy}+4800-a}}
{SET c{={MERGEFIELD BIRTHDATE \@ M}+12*a-3}}
{SET d{MERGEFIELD BIRTHDATE \@ d}}
{SET jd{=d+INT((153*c+2)/5)+365*b+INT(b/4)-INT(b/100)+INT(b/400)-32045}}
{jd \#,0}} > 2,443,056 "over 30" "under30"}
Such an approach may look intimidating, but is just the brute-force method necessary for some instances. If you want more details on how the conversion works (and why it may be necessary), check out the following file:
http://www.wopr.com/w3tfiles/10-249902-DateCalc.zip
When you uncompress this file, you end up with a Word document that includes the full, multi-page explanation concerning date conversions.
Tip #356 applies to Microsoft Word versions: 97 2000 2002 2003
Find and Replace Almost Anything! An invaluable resource for learning how to harness the full power of Word's search and replace capabilities. You'll discover everything you need in order to master all the intricacies of finding and replacing elements of your document, including the super-powerful "wildcard searches" available in Word.