Home |
Search |
Today's Posts |
|
#1
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
Field and Record Delimiter
Using Word 2003, with VBA, when I do the merge appears a prompt to specify
the field and record delimiters of the DataSource. Is there any way to specify them? I've not seen any property/method to do that in MailMerge object neither in OpenDataSource method. Thanks, Janfry |
#2
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
Field and Record Delimiter
I've not seen any property/method to do that in MailMerge object neither
in OpenDataSource method. That's correct. If the data source is a delimited text file (e.g. a .txt file) with 255 columns of data or fewer, you /may/ be able to do this by using a schema.ini file to specify the delimiters, and you will probably also need to use a .odc file to open the data source. For example, suppose you want to connect to c:\myfiles\mydata.txt. Then you need a .odc file (Office Data Connection File) as follows (this has a lot of stuff which you do not absolutely need but which Office inserts when you create it): ----------------------------------------------------------------- html xmlns="urn:schemas-microsoft-comfficeffice" xmlns="http://www.w3.org/TR/REC-html40" head meta http-equiv=Content-Type content="text/x-ms-odc; charset=utf-8" meta name=ProgId content=ODC.Table meta name=SourceType content=OLEDB meta name=Table content="mydata#txt" titlemydata#txt/title xml id=docpropsoocumentProperties xmlns="urn:schemas-microsoft-comfficeffice" xmlns="http://www.w3.org/TR/REC-html40" o:Namemydata#txt/o:Name /oocumentProperties /xmlxml id=msodcodc:OfficeDataConnection xmlnsdc="urn:schemas-microsoft-comfficedc" xmlns="http://www.w3.org/TR/REC-html40" odc:Connection odc:Type="OLEDB" odc:ConnectionStringProvider=Microsoft.ACE.OLEDB .12.0;User ID=Admin;Data Source=c:\myfiles\;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=96;Jet OLEDBatabase Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDBon't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False/odc:ConnectionString odc:CommandTypeTable/odc:CommandType odc:CommandTextmydata#txt/odc:CommandText /odc:Connection /odc:OfficeDataConnection /xml style !-- .ODCDataSource { behavior: url(dataconn.htc); } -- /style /head body onload='init()' scroll=no leftmargin=0 topmargin=0 rightmargin=0 style='border: 0px' table style='border: solid 1px threedface; height: 100%; width: 100%' cellpadding=0 cellspacing=0 width='100%' tr td id=tdName style='font-family:arial; font-size:medium; padding: 3px; background-color: threedface' /td td id=tdTableDropdown style='padding: 3px; background-color: threedface; vertical-align: top; padding-bottom: 3px' /td /tr tr td id=tdDesc colspan='2' style='border-bottom: 1px threedshadow solid; font-family: Arial; font-size: 1pt; padding: 2px; background-color: threedface' /td /tr tr td colspan='2' style='height: 100%; padding-bottom: 4px; border-top: 1px threedhighlight solid;' div id='pt' style='height: 100%' class='ODCDataSource'/div /td /tr /table script language='javascript' function init() { var sName, sDescription; var i, j; try { sName = unescape(location.href) i = sName.lastIndexOf(".") if (i=0) { sName = sName.substring(1, i); } i = sName.lastIndexOf("/") if (i=0) { sName = sName.substring(i+1, sName.length); } document.title = sName; document.getElementById("tdName").innerText = sName; sDescription = document.getElementById("docprops").innerHTML; i = sDescription.indexOf("escription") if (i=0) { j = sDescription.indexOf("escription", i + 11); } if (i=0 && j = 0) { j = sDescription.lastIndexOf("/", j); if (j=0) { sDescription = sDescription.substring(i+11, j); if (sDescription != "") { document.getElementById("tdDesc").style.fontSize=" x-small"; document.getElementById("tdDesc").innerHTML = sDescription; } } } } catch(e) { } } /script /body /html ----------------------------------------------------------------- You need one of those for each data source. You will need to change the path name in the connection string to be the name of the folder containing the text file you want to use, and change the file name in the various places it occurs (Actually, I suspect it would be enough to change it in the line that says "meta name=Table content="mydata#txt"". Notice that "#" is used instead of "." in this type of .odc file - I don't know if that is entirely necessary. If you copy the DATACONN.HTC file from your My Data Sources folder to the same folder as the .odc and try to open the .odc in Internet Explorer, with any luck you wil see the text file content. That's not essential for your task, but a useful technique when debugging .odc files. To specify the character encoding of the text file, you need a SCHEMA.INI file in the same folder as the text file. The SCHEMA.INI file is a text file that you can edit with Notepad. has one "section" for each file you want to describe. For a comma-delimited file with a header record try [mydata.txt] ColNameHeader=True Format=Delimited(,) MaxScanRows=25 If you need to use a different delimiter character use it instead of the "," If you need to use a different character encoding, you can specify many different encoding using another line, e.g. the following one is for Unicode UTF-8: CharacterSet=65001 If you want to put the column names in the SCHEMA.INI file rather than the data source, you can do so by using ColNameHeader=False and adding lines such as Col1=nameofcolumn1 Col2=nameofcolumn2 and so on, e.g. you might have Col1=firstname Col2=lastname If you want to specify the data type of the column, you can do so to an extent, e.g. for text columns use Col1=firstname text Col2=lastname text Peter Jamieson "Janfry" wrote in message ... Using Word 2003, with VBA, when I do the merge appears a prompt to specify the field and record delimiters of the DataSource. Is there any way to specify them? I've not seen any property/method to do that in MailMerge object neither in OpenDataSource method. Thanks, Janfry |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
When I go to sort, what is a Header Record Delimiter? | Microsoft Word Help | |||
extra field delimiter causing problem with selecting text | Microsoft Word Help | |||
Merge field delimiter in insert field formula ? | Mailmerge | |||
default Header Record delimiter in mail merge | Mailmerge | |||
What is a "Header Record Delimiter"? I am not able to manage my . | Mailmerge |