View Single Post
  #6   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Arden Arden is offline
external usenet poster
 
Posts: 8
Default If-then-else with "or" command

thanks for your post and your website. I still do not seem to achieve
success, even when using your example, coding:

{ IF { =( { IF A = €œA€ 1 0 } + { IF A = €œB€ 1 0 } + { IF A = €œC€ 1 0 } ) }
= 1 €œTrue€ €œFalse€ }


When I run the merge, the output shows:

{ IF { =( { IF A = €œA€ 1 0 } + { IF A = €œB€ 1 0 } + { IF A = €œC€ 1 0 } ) }
= 1 €œTrue€ €œFalse€ }


where the A's, above, represent the data in the table. Why doesn't the
expression fully resolve and just print "True"?

Thanks.

"Peter Jamieson" wrote:

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!