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 Truncating in Mail Merge

HI Laurel,

You're on the right track, but let's start from scratch:

1. To do it the way you propose:

Select the point where you want to enter the field in your document.

Press ctrl F9 to get

{ }

Inside that, type

= \# x###

to give you

{ = \# x### }

Click just before the backslash and use ctrl-F9 to insert another {}, to
give you

{ = { } \# x### }


then between those new {}, type

MERGEFIELD Cardholder_Number

to give you

{ = { MERGEFIELD Cardholder_Number
} \# x### }

2. To do it the way I suggested,...

Select the point where you want to enter the field in your document.

Press ctrl F9 to get

{ }

Inside that, type

=mod(,10000)

to give you

{ =mod(,10000) }

Click just before the comma and use ctrl-F9 to insert another {}, to give
you

{ =mod({ },10000) }

then between those new {}, type

MERGEFIELD "the name of your account field"

to give you

{ =mod({ MERGEFIELD "the name of your account field"
},10000) }

3. That's probably enough for you to follow Graham's suggestion as well.

Peter Jamieson


"Laurel" wrote in message
...
Thank you so much to you and Graham. I'm having trouble getting it to work
without syntax errors. I don't have a lot of experience with mail merge.
But
while I was trying to figure it out, I came across a numeric picture
switch
that drops digits to the left of the "x" placeholder. I'm still unable to
type without getting syntax errors but theoretically would this work?

{ = 111053 + 111439 \# x## } displays "492". (example in documentation)
{ = «Cardholder_Number»\# x### } (how it would maybe work for me?)

Also, I'm still unable to key this into my document so that it works. I
can
get the brackets using Ctrl-F9 but everything I type inside gets a syntax
error.

Thank you so much. You guys are great!

"Peter Jamieson" wrote:


It seems like it should be
just as simple as the RIGHT function in Excel


It does, but unfortunately it isn't.

If the account number is a whole number (or in some case, contains a
whole
number) not more than around 14 or so digits long, you can use

{ =mod({ MERGEFIELD youraccountfield },10000) } and prefix any asterixes
you
need.

All the {} need to be the special field code braces that you can insert
using ctrl-F9.

If the account number is more complex there are two things you can do
other
than transform your data source into another format:
a. use a DATABASE field - nasty, but see
http://tips.pjmsn.me.uk/t0004.htm
b. use Word VBA to issue a SQL query to get the data from the .csv file,
and put the necessary right() function in that query. That isn't
straightforward either, but it can usually be done as long as the .csv
can
be read by the Jet ODBC driver/OLE DB provider and doesn't have more than
255 fields.

Peter Jamieson


"Laurel" wrote in message
...
Hi All,
I'd like to print just the last 4 numbers of an account number in a
mail
merge letter (front fill the rest with asterisks). It seems like it
should
be
just as simple as the RIGHT function in Excel but by necessity my
source
document has be a CSV text document so the function has to take place
in
Word. Is this possible?

Thanks so much!
Laurel