View Single Post
  #5   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Peter Jamieson Peter Jamieson is offline
external usenet poster
 
Posts: 4,582
Default If-then-else with "or" command

The original example should work, which suggests that you may not be
entering it correctly.

Typically, it's easier to insert these nested fields "by hand" using
a. ctrl-F9 to insert each pair of the special "field braces" {} (the
ordinary ones on the keyboard do not work)
b. alt-F9 to toggle between "field code" and "field results" view.
c. select one of the "nested" fields inside the IF and use shift-F9 to
toggle just that field so you can see its result.

The goal is I am wanting to use an If-then-else statement where the

If is
compared to a group of 3 values and I haven't found how to do this

in one
statement. For example, I think it should look like: If code = (1 or

2 or 3)
then "TEXT1" "TEXT2". I don't want to use If code = 1 "TEXT1" "If

code = 2
"TEXT1" ... etc for a nested if with the same text to maintain multiple
times.


{ IF { ={ COMPARE code = 1 }+{ COMPARE code = 2 }+{ COMPARE code = 3 } }
0 "code is one of 1,2, or 3" "code is none of 1,2, or 3" }


precisely what you put for "code" depends on what kind of thing "code"
is - if it's a mergefield, you would either need to use { MERGEFIELD
code } instead of code, i.e.

{ IF { ={ COMPARE { MERGEFIELD code } = 1 }+{ COMPARE { MERGEFIELD code
} = 2 }+{ COMPARE { MERGEFIELD code } = 3 } } 0 "code is one of 1,2,
or 3" "code is none of 1,2, or 3" }

or set a bookmark prior to the comparison and use that instead, e.g.

{ SET code2 { MERGEFIELD code } }{ IF { ={ COMPARE { MERGEFIELD code2 =
1 }+{ COMPARE code2 = 2 }+{ COMPARE code2 = 3 } } 0 "code is one of
1,2, or 3" "code is none of 1,2, or 3" }


Peter Jamieson
http://tips.pjmsn.me.uk

Arden wrote:
Thanks for taking the time to reply. The result I get is closer, but it's not
yet complete:

Cust # 4 Cust Rate 2
{ IF { COMPARE { IF { = 4} = { = 4 } 1 0 } =
{ IF { = 2} = { = 9 } 1 0 } = 1 "Credit not
acceptable" "Credit acceptable"}

when the CustomerNumber = 4 and the CustomerRate = 2.

A little more help?


"Arden" wrote:

The goal is I am wanting to use an If-then-else statement where the If is
compared to a group of 3 values and I haven't found how to do this in one
statement. For example, I think it should look like: If code = (1 or 2 or 3)
then "TEXT1" "TEXT2". I don't want to use If code = 1 "TEXT1" "If code = 2
"TEXT1" ... etc for a nested if with the same text to maintain multiple
times.

When I posed this question to an online expert, I was directed to the "=OR"
function with the COMPARE statement. It looks like it should work, but I
can't get Microsoft's example code from Help to work: { IF { = OR ( { COMPARE
{ MERGEFIELD CustomerNumber } = 4 }, { COMPARE { MERGEFIELD CustomerRating }
= 9 } ) } = 1 "Credit not acceptable" "Credit acceptable"}

What advice can you offer? Thanks!