Re: automating the SQL warning and the choice of text format



Wow

That all look pretty intense!

I was hoping for something that would work at runtime that would
automatically select 'yes' and 'utf-8' rather than changing the registry,
but as the Microsoft knowledge base states its there as security measure so
I doubt that will be possible for the SQL

I will certainly gives these a go and let you know how I get on

Thanks very much
Craig



"Peter Jamieson" <pjj@xxxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:OIl6vT9ZHHA.4832@xxxxxxxxxxxxxxxxxxxxxxx
You may be able to do some of this, but you really need to make a change
to the Windows registry, and you'll probably have to create one or more
extra files for each file you want to use as a data source. I haven't used
this approach much for real, so would be interested to hear whether it
works for you or not.

For the Windows registry change, see

http://support.microsoft.com/Default.aspx?kbid=825765

That should get rid of the "SQL command" messages. However, before you do
that, can you tell me whether the SQL message is displaying the correct
name of the file you are trying to connect to? Here, but only with Word
2007, Word seems to invent a file name (e.g. I try to connect to kt.txt,
but the message displays txt1380.txt).

In order to get the correct encoding, I believe that you have to do the
following:
a. use a .odc file to connect to the data
b. use a SCHEMA.INI file to specify the encoding.

For example, suppose you want to connect to c:\myfiles\mydata.txt and the
file is in UTF-8 format. 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:o="urn:schemas-microsoft-com:office:office"
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">
<title>mydata#txt</title>
<xml id=docprops><o:DocumentProperties
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns="http://www.w3.org/TR/REC-html40";>
<o:Name>mydata#txt</o:Name>
</o:DocumentProperties>
</xml><xml id=msodc><odc:OfficeDataConnection
xmlns:odc="urn:schemas-microsoft-com:office:odc"
xmlns="http://www.w3.org/TR/REC-html40";>
<odc:Connection odc:Type="OLEDB">
<odc:ConnectionString>Provider=Microsoft.ACE.OLEDB.12.0;User
ID=Admin;Data Source=c:\myfiles\;Mode=Share Deny None;Extended
Properties=&quot;&quot;;Jet OLEDB:System database=&quot;&quot;;Jet
OLEDB:Registry Path=&quot;&quot;;Jet OLEDB:Engine Type=96;Jet
OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet
OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database
Password=&quot;&quot;;Jet OLEDB:Create System Database=False;Jet
OLEDB:Encrypt Database=False;Jet OLEDB:Don'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:CommandType>Table</odc:CommandType>
<odc:CommandText>mydata#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'>
&nbsp;
</td>
<td id=tdTableDropdown style='padding: 3px; background-color:
threedface; vertical-align: top; padding-bottom: 3px'>

&nbsp;
</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'>

&nbsp;
</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 using UTF-8 encoding, try:

[mydata.txt]
ColNameHeader=True
Format=Delimited(,)
MaxScanRows=25
CharacterSet=65001


ColNameHeader specifies that he first row in your data file contains
column names.

MaxScanRows is probably optional in this case.

Peter Jamieson

"cw" <c@xxxxxxxxxxxx> wrote in message
news:l5adnSZ6r9pT4GfYnZ2dnUVZ8qOtnZ2d@xxxxxxxxx
Hi all (again)

I was just wondering as I am trying to automate a word mail merge as much
as possible (least user clicks)

is it possible to automate the dialog boxes that appear when opening a
word file that use mail merge

in particular the "this file will run an SQL command select * from ... "
click yes and the " what is the encoding of this text file" I want that
to be default utf-8

any thoughts

I have managed to get my filemaker database to export the word file
stored in a container field and export the records to a text file open
them both (then the user needs to interact), then it performs the mail
merge closes the files and deletes all but the final word doc

just need to get rid of those user interactions in the middle

thanks for any input
Craig

I am using word 2007 but it needs to work on all of the latest version if
poss








.



Relevant Pages

  • How to change default encoding for *.txt file?
    ... Now, the default encoding for .txt document is set to UTF-8, so that every ... I was searching through the registry ... (regedit), but couldn't find the option that would solve this problem. ...
    (microsoft.public.windowsxp.general)
  • Re: Data source not "sticking"
    ... First, as far as I am aware, when the data source is a text file and you ... have to specify the encoding, Word does not store the information about the ... encoding when it saves the mail merge main document. ... XML format (i.e. not the sort of simple XML format doucment you might ...
    (microsoft.public.word.docmanagement)
  • Re: How do I tell Word 2003 my mail-merge text is NOT UTF-8?
    ... (It's also possible that opening the document in Word with an explicit encoding, saving it as a WOrd document, then using that as the data source for a merge, as described in that article, might do the trick). ... If you are using Word 2000, that can't work because it doesn't support OLE DB and .odc files. ... Although you can use ODBC to connect using a similar SCHEMA.INI, the ODBC driver does not seem to recognise all the entries in the .INI file that the OLE DB provider does, and it doesn't have the same character encoding support anyway AFAIK. ...
    (microsoft.public.word.mailmerge.fields)
  • Re: How do I tell Word 2003 my mail-merge text is NOT UTF-8?
    ... applications create a tab-separated temporary file and call a library ... (It's also possible that opening the document in Word with an explicit encoding, saving it as a WOrd document, then using that as the data source for a merge, as described in that article, might do the trick). ... Although you can use ODBC to connect using a similar SCHEMA.INI, the ODBC driver does not seem to recognise all the entries in the .INI file that the OLE DB provider does, and it doesn't have the same character encoding support anyway AFAIK. ...
    (microsoft.public.word.mailmerge.fields)
  • Re: How do I tell Word 2003 my mail-merge text is NOT UTF-8?
    ... Yes, I would also prefer it if Word let you specify the encoding and everything could be kept very simple, but unfortunately ... several of the parameters in OpenDataSource have no effect and are probably only there because someone in the WordBasic era decided that OpenDataSource would probably need much the same parameters as Open. ... Arguably the whole problem with OpenDataSource, ODBC and OLE DB is that between them they don't abstract the business of opening an arbitrary data source anything like well enough. ... but in your original post you described a specific situation where you were creating a tab-separated temp file with barcode data and using that as your data source - in that case I would hope that you be able to limit the use of .odc to the specific situation where you are creating the data source on-the-fly. ...
    (microsoft.public.word.mailmerge.fields)