Hi,
I have a MySQL database which contains customer data. I have written a PHP
script to create a CSV file and then import the data into Microsoft excel
using COM, which has been saved into C:\TEMP\test.xls. I am now trying to
start a mail merge in word with the following code:-
com_load_typelib('Word.Application');
$word = new COM("word.application") or die("Unable to instantiate Word");
$word->Visible = 1;
$word->Documents->Add();
$word->ActiveDocument->MailMerge->MainDocumentType = wdFormLetters;
$word->ActiveDocument->MailMerge->OpenDataSource _("c:\\temp\\test.xls");
I only want to setup the mail merge up to the point where the user can start
selecting fields.
The problem is that after word opens it prompts me to select a table.
According to the Microsoft documentation this is because the SQLStatement
parameter has not been specified in the call to OpenDataSource.
I have created a empty variant data type as follows:-
$empty = new VARIANT();
and used it in the new call where
OpenDataSource
("c:\\temp\\test.xls",$empty,$empty,$empty,$empty,$empty,$empty,$empty,$empt
y,$empty,$empty,$empty,"SELECT * FROM test$",$empty,$empty,$empty);
When I run the script I get the following error:
Warning: (null)(): Invoke() failed: Type mismatch. Argument: 17 in
c:\program files\apache group\apache\htdocs\test6.php on line 93
I didn't think I had specified 17 arguments.
I have checked want data types OpenDataSource is expecting and according to
OLE/COM view it is expecting a BSTR followed by 15 optional variants.
I apologise if this seems like a stupid question but I've only been
programming in php for a couple of months. Any advice would be appreciated.
Thanks
Dave
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php