Mail Merge - If statement

N

Nieve

Hi

I have a mail merge letter to send to potential clients.

Some of the data in one merge field (<<Contact Name>>) is 'No Contact'. I
want to set a rule in the mail merge template that says when the data 'No
Contact' is merged it is replaced with 'The Manager'. Is there a way of doing
this?


(I know I could do Find and Replace ('No Contact' with 'The Manager') in
excel (where the data is stored), or when the mail merge is completed. This
is not a solution however, as I simply need the template to do it for me).

Thanks

Nieve
 
D

Dave Shaw

I would suggest that you insert a field code such as:

{ IF {MERGEFIELD Contact Name} = "No Contact" "The Manager" "{MERGEFIELD
Contact Name}"}

To do the above ensure you can see field codes - Tools, Options, view, field
codes, and insert the {} using Ctrl + F9

Hope this helps

Dave
 
N

Nieve

Hi.

I actually had to fiddle around with the code.

The correct code is

{ IF {MERGEFIELD Contact Name} = "No Contact" "The Manager" "{MERGEFIELD
“Contact Nameâ€}
"}

It worked great anyhow!

Nieve
 
D

Dave Shaw

The mergefields that you are doing the conditional argument on and the
result would normally be the same. By putting in a line break at the end of
the 'else' part will result in an additional line break if this condition is
met.

Anyway glad to be of help
 
N

Noel

I have a mail merge letter that pulls information from an access database. I
need to put in an IF statement that says if the type of purchase is buy back,
then it is to mail merge the amount in the Buy Back merge field, if it's a
Buy In, then it needs to merge it into the Buy In merge field. The amounts
pull from the same field in access.

Thanks
 
E

Elijah Taylor

Noel said:
I have a mail merge letter that pulls information from an access database. I
need to put in an IF statement that says if the type of purchase is buy back,
then it is to mail merge the amount in the Buy Back merge field, if it's a
Buy In, then it needs to merge it into the Buy In merge field.

*snip*

I would probably do this by creating a query in Access which did the
same thing, and then setting up my Mail-Merge off the newly created
query. Just another way to do it, sorry if its not applicable to your
situation.
 
D

Doug Robbins - Word MVP

To do it in the mailmerge main document, in the where you have (or would
have the Buy Back) merge field, use

{ IF { MERGEFIELD PurchaseType } = "Buy Back" { MERGEFIELD Amount } }

and where you have (or would have the Buy In) merge field, use

{ IF { MERGEFIELD "PurchaseType } = "Buy In" { MERGEFIELD Amount } }

or something similar. You must use Ctrl+F9 to insert each pair of field
delimiters { }.

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
N

Noel

The purchase type is not a merge field, so my question would be is what do I
code the field code?
Thanks
 
D

Doug Robbins - Word MVP

If the Purchase Type is not a mergefield, from where does it come?

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
N

Noel

It is a field within the Access database but it is not something that gets
merged into the letter in Word. Maybe this should be something in the Access
query?
I'm a newbie to the statements that you can use so I am seeking any help i
can get.
Thanks
 
D

Doug Robbins - Word MVP

The PurchaseType field from Access can be used as a Mergefield in the way
detailed in the If...then...Else field construction, without having the
actual content of the field appear anywhere in the merge document.

Normally, I would say that manipulation such as that done by the use of
If...then...Else fields is best done in the data source if that source is a
data base. However, I understand from your original post that you want the
contents of an amount field to appear in different places in the letter
depending upon the PurchaseType.

Without seeing the actual context of where you want this information to
appear, it is difficult to tell you the best way to go about it.

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
N

Noel

Would I try something like this and put it in the toggle field codes in the
Word document “Select * from SERVICEPURCHASE Where TYPE OF PURCHASE =Buy Inâ€
? The end result, I need it to place the TOTAL COST in the Buy In field of
the Merge letter. If it's a Buy Back, I need it to be placed in the Buy Back
field of the Merge Letter. Nobody else in my office knows access and so I'm
sorry if I am a little clueless with this. I'm on a time crunch to get this
done, so using all I can.

Thanks so much for your help!
 
D

Doug Robbins - Word MVP

You do not need to be using anything like "Select * from SERVICEPURCHASE
Where TYPE OF PURCHASE =Buy In"

As I said in one of my earlier posts:

To do it in the mailmerge main document, in the where you have (or would
have the Buy Back) merge field, use

{ IF { MERGEFIELD PurchaseType } = "Buy Back" { MERGEFIELD Amount } }

and where you have (or would have the Buy In) merge field, use

{ IF { MERGEFIELD "PurchaseType } = "Buy In" { MERGEFIELD Amount } }

or something similar. You must use Ctrl+F9 to insert each pair of field
delimiters { }.


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
N

Noel

I entered it in the Word Merge document as {IF {MERGEFIELD Type of
Purchase}="Buy Back" {MERGEFIELD Total Cost} but I get an error saying that
Type is not in my data source.
 
D

Doug Robbins - Word MVP

You cannot have spaces in the name of a mergefield. (or maybe you can, but
then you would need to include the field name in "")

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
N

Noel

This database was created by someone that is no longer with the company and
they entered the field names that way. Do I need to correct the field names
in all the tables, queries, etc?
 
D

Doug Robbins - Word MVP

Try using

{IF {MERGEFIELD "Type_of_Purchase" }="Buy Back" {MERGEFIELD "Total_Cost"}

Using the mail merge helper/wizard, if you select a field from the data
source for which the name includes spaces, it automatically replaces the
space with an underscore and encloses the (modified) field name in quotation
marks.

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
C

crae

Doug,

I'm afraid this Service Purchase mail merge letter has now been passed over
to me. Again, using the same Access Database. Need to change an IF
statement merge field. I thought I had come upon something that would work
but it's not giving me results that I would expect. Could be my syntax is
off? I've scanned your previous threads and have tried breaking it down and
doing the Toggle Field Codes for the sections. I'll copy in what I'm seeing.

My current code:
IF {MERGEFIELD TypeofPurchase } = "Buy In" { MERGEFIELD Qtrs_to_Purchase }
"IF { MERGEFIELD TypeofPurchase } = "Buy Up" { MERGEFIELD Qtrs_to_Purchase
}" "0"} "}

Basically if TypeofPurchase is either Buy In or Buy Up, it needs to pull the
data from the same Qtrs_to_Purchase field, otherwise 0.

When I do the toggle field codes for the first line, it gives me this (keep
in mind that on this mail merge I'm working with the TypeofPurchase field in
our database was displaying Buy Up);

«TypeofPurchase» = "Buy In" 0
When I do the toggle field codes for the second line, it gives me this;
IF { MERGEFIELD TypeofPurchase } =
When I do the toggle field code for the entire thing, it gives me the same
thing as listed directly above.

This field was originally only populated with the first statement, but due
to a requested change, it needs to incorporate whether it's either a Buy In
OR a Buy Up.

Hope you can offer some suggestions.

Thank you in advance for your time/assistance,
crae
 
P

Peter Jamieson

As posted, your code has various brace and/or quote characters either
absent or in excess. Your code should look more like this - none of the
newlines I have added need to be there - they are just to try to make
the structure clearer. I would suggest that you re-enter the code from
scratch (don't try to start with the existing stuff), and make sure you
select it and update all the fields using F9 before testing.

{
IF { MERGEFIELD TypeofPurchase } = "Buy In"
"{ MERGEFIELD Qtrs_to_Purchase }"
"{
IF { MERGEFIELD TypeofPurchase } = "Buy Up"
"{ MERGEFIELD Qtrs_to_Purchase }"
"0"
}"
}

You could probably get away with fewer quotes e.g.


{
IF { MERGEFIELD TypeofPurchase } = "Buy In"
{ MERGEFIELD Qtrs_to_Purchase }
{
IF { MERGEFIELD TypeofPurchase } = "Buy Up"
{ MERGEFIELD Qtrs_to_Purchase }
"0"
}
}

but personally I prefer to spell it all out as follows:

{
IF "{ MERGEFIELD TypeofPurchase }" = "Buy In"
"{ MERGEFIELD Qtrs_to_Purchase }"
"{
IF "{ MERGEFIELD TypeofPurchase }" = "Buy Up"
"{ MERGEFIELD Qtrs_to_Purchase }"
"0"
}"
}


Don't forget that every pair of {} needs to be the special field code
braces that you can enter with ctrl-F9


Peter Jamieson

http://tips.pjmsn.me.uk
 

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