Reply
 
Thread Tools Display Modes
  #1   Report Post  
Posted to microsoft.public.word.mailmerge.fields
b.schmidt b.schmidt is offline
external usenet poster
 
Posts: 4
Default how to map mailmerge fields?

hi,

I added a csv-file as DataSource to a Word Document (I'm using VSTO, C#
and Word 2007), which worked fine. Now I was wondering, how I can map
the columns I declared in the first line of the csv-file to the fields
Word uses for mailmerge?

I tried to use MappedDataFields, but whenever I tried to write to a
MappedDataField.DataFieldName it tells me that this property is read-only?

I'm a bit confused...

best regards,
Bernhard
  #2   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Peter Jamieson Peter Jamieson is offline
external usenet poster
 
Posts: 4,582
Default how to map mailmerge fields?

the columns I declared in the first line of the csv-file to the fields
Word uses for mailmerge?


You only need to map fields if you are using merge fields that rely on
mapping, such as ADDRESSBLOCK and GREETINGLINE, or if you want to use
mapping and use the standardlist of "Address Field" names with the "\m"
switch in the MERGEFIELD fields.

Not sure about Word 2007 but in Word 2003 you can't assign to the name. You
can work around this by assigning one index to another, e.g. to assign the
Address field "City" to the first column in the data source in VBA, you
might use:

Dim objMDFs As MappedDataFields
Set objMDFs = ActiveDocument.MailMerge.DataSource.MappedDataFiel ds
objMDFs(wdCity).DataFieldIndex = 1
Set objMDFs = Nothing

i.e. if you want to assign the data source fied called "Town" to the mapped
field "City", you will probably need to iterate through the
ActiveDocument.MailMerge.DataSource.DataFields collection looking for the
field whos ename is "Town", and use its index value to set the
MappedDataFields.DataFieldIndex.

Peter Jamieson

"b.schmidt" wrote in message
...
hi,

I added a csv-file as DataSource to a Word Document (I'm using VSTO, C#
and Word 2007), which worked fine. Now I was wondering, how I can map the
columns I declared in the first line of the csv-file to the fields Word
uses for mailmerge?

I tried to use MappedDataFields, but whenever I tried to write to a
MappedDataField.DataFieldName it tells me that this property is read-only?

I'm a bit confused...

best regards,
Bernhard



  #3   Report Post  
Posted to microsoft.public.word.mailmerge.fields
b.schmidt b.schmidt is offline
external usenet poster
 
Posts: 4
Default how to map mailmerge fields?

Thanks, using the DataFieldIndex worked.

Strange though that the MappedDataField.DataFieldName is stated as
"Read/write" on MSDN, although Visual Studio says it's read-only...

http://msdn2.microsoft.com/en-us/library/bb224166.aspx

Thank you very much for your help.


Peter Jamieson, am 09.05.2007 13:59:
the columns I declared in the first line of the csv-file to the fields
Word uses for mailmerge?


You only need to map fields if you are using merge fields that rely on
mapping, such as ADDRESSBLOCK and GREETINGLINE, or if you want to use
mapping and use the standardlist of "Address Field" names with the "\m"
switch in the MERGEFIELD fields.

Not sure about Word 2007 but in Word 2003 you can't assign to the name. You
can work around this by assigning one index to another, e.g. to assign the
Address field "City" to the first column in the data source in VBA, you
might use:

Dim objMDFs As MappedDataFields
Set objMDFs = ActiveDocument.MailMerge.DataSource.MappedDataFiel ds
objMDFs(wdCity).DataFieldIndex = 1
Set objMDFs = Nothing

i.e. if you want to assign the data source fied called "Town" to the mapped
field "City", you will probably need to iterate through the
ActiveDocument.MailMerge.DataSource.DataFields collection looking for the
field whos ename is "Town", and use its index value to set the
MappedDataFields.DataFieldIndex.

Peter Jamieson

"b.schmidt" wrote in message
...
hi,

I added a csv-file as DataSource to a Word Document (I'm using VSTO, C#
and Word 2007), which worked fine. Now I was wondering, how I can map the
columns I declared in the first line of the csv-file to the fields Word
uses for mailmerge?

I tried to use MappedDataFields, but whenever I tried to write to a
MappedDataField.DataFieldName it tells me that this property is read-only?

I'm a bit confused...

best regards,
Bernhard



  #4   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Peter Jamieson Peter Jamieson is offline
external usenet poster
 
Posts: 4,582
Default how to map mailmerge fields?

Strange though that the MappedDataField.DataFieldName is stated as
"Read/write" on MSDN, although Visual Studio says it's read-only...


Let me put it this way: I always try to avoid basing any statement on the
evidence of the official documentation alone, whatever its origin. When I
have, I've almost invariably regretted it. And that hasn't changed for over
25 years...

Peter Jamieson


"b.schmidt" wrote in message
...
Thanks, using the DataFieldIndex worked.

Strange though that the MappedDataField.DataFieldName is stated as
"Read/write" on MSDN, although Visual Studio says it's read-only...

http://msdn2.microsoft.com/en-us/library/bb224166.aspx

Thank you very much for your help.


Peter Jamieson, am 09.05.2007 13:59:
the columns I declared in the first line of the csv-file to the fields
Word uses for mailmerge?


You only need to map fields if you are using merge fields that rely on
mapping, such as ADDRESSBLOCK and GREETINGLINE, or if you want to use
mapping and use the standardlist of "Address Field" names with the "\m"
switch in the MERGEFIELD fields.

Not sure about Word 2007 but in Word 2003 you can't assign to the name.
You can work around this by assigning one index to another, e.g. to
assign the Address field "City" to the first column in the data source in
VBA, you might use:

Dim objMDFs As MappedDataFields
Set objMDFs = ActiveDocument.MailMerge.DataSource.MappedDataFiel ds
objMDFs(wdCity).DataFieldIndex = 1
Set objMDFs = Nothing

i.e. if you want to assign the data source fied called "Town" to the
mapped field "City", you will probably need to iterate through the
ActiveDocument.MailMerge.DataSource.DataFields collection looking for the
field whos ename is "Town", and use its index value to set the
MappedDataFields.DataFieldIndex.

Peter Jamieson

"b.schmidt" wrote in message
...
hi,

I added a csv-file as DataSource to a Word Document (I'm using VSTO, C#
and Word 2007), which worked fine. Now I was wondering, how I can map
the columns I declared in the first line of the csv-file to the fields
Word uses for mailmerge?

I tried to use MappedDataFields, but whenever I tried to write to a
MappedDataField.DataFieldName it tells me that this property is
read-only?

I'm a bit confused...

best regards,
Bernhard


Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Substring used one Mailmerge Fields Nikon Mailmerge 1 May 4th 07 07:24 AM
Help with mailmerge fields bb Mailmerge 2 March 22nd 06 02:36 AM
Name fields in mailmerge oe Mailmerge 1 November 16th 05 07:04 PM
MailMerge Fields Bill S. Mailmerge 1 March 22nd 05 09:01 PM
Using MAILMERGE fields within HYPERLINK fields for Merge to Email Mark V Mailmerge 2 December 4th 04 04:01 PM


All times are GMT +1. The time now is 03:51 AM.

Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 Microsoft Office Word Forum - WordBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Word"