Korrekt Sammenligninger for datoer i Fields Flet

Volker er at have et problem sammenligning af datoer i en fletfelt. Hans database indeholder en Fødselsdato felt, hvilket (naturligvis) indeholder et fødsel dato for hver person i databasen. Da han fusionerer hver post, han ønsker at sammenligne Fødselsdato feltet til en referencedato, og derefter træffe nogle foranstaltninger baseret på resultatet. Logikken han forsøger at bruge ser sådan ud:

{IF {MERGEFIELD Fødselsdato}> "1981/02/26" "Under 30" "Over 30"}

Problemet er, at sammenligningen ikke fungerer korrekt; det ikke vender tilbage ensartede resultater. En mulig løsning er at bruge et format switch i feltet fusionere, på følgende måde:

{IF {MERGEFIELD Fødselsdag \ @ "MM / DD / ÅÅÅÅ"}> "1981/02/26" "Under 30" "Over 30"}

Det sætter indkommende oplysninger i et sammenligneligt format. De resultater, du får fra denne tilgang kan afhænge, ​​dog, om består af dataenes kendetegn kilde, uafhængig af Word. Du kunne også prøve at sætte de datoer, ind i et format år-første, som f.eks som den følgende:

{IF {MERGEFIELD Fødselsdato \ @ "ÅÅÅÅ / MM / DD"}> "2011/02/26" "Under 30" "Over 30"}

Hvis sammenligningen stadig giver inkonsistente resultater, så er den eneste løsning kan være at gøre en matematisk konvertering på den dato (faktisk, om både Fødselsdato og referencen dato), så du har en faktiske numerisk sammenligning. Du kan gøre dette ved at konvertere datoen til en Julian værdi, hvilket kræver en meget kompleks felt fusionere, som vist her:

{IF {QUOTE {SET en {= INT ((14- {MERGEFIELD Fødselsdato \ @ M}) / 12)}}
{SET B {= {MERGEFIELD fødselsdato \ @ yyyy} + 4800-a}}
{SET c {= {MERGEFIELD fødselsdato \ @ M} + 12 * a-3}}
{SET d {MERGEFIELD fødselsdato \ @ d}}
{SET jd {= d + INT ((153 * c + 2) / 5) + 365 * b + INT (b / 4) -INT (b / 100) + INT (b / 400) -32.045}}
{Jd \ #, 0}}> 2443056 "over 30" "under30"}

En sådan fremgangsmåde kan se skræmmende, men er blot brute-force-metoden er nødvendig for nogle tilfælde.

WordTips er din kilde til omkostningseffektiv Microsoft Word træning. (Microsoft Word er den mest populære tekstbehandling software i verden.) Dette tip (9995) gælder for Microsoft Word 2007 og 2010. Du kan finde en version af dette tip for den ældre menu grænsefladen af ​​Word her: Ordentlig Sammenligninger for Datoer i flettefelter.


© 2021 Zajacperrone.com | Contact us: webmaster# zajacperrone.com