(e-mail address removed) (Gerrit-Jan Linker) wrote ...
You could consider using SQL*XL. SQL*XL is an addin for Excel that
allows you to use your database directly from Excel. It is fully
functional: it supports the transfer of data from the database to
Excel and vise versa.
I note this tool attempts to solve that age old problem in the Excel
newsgroups of how to refresh external data based on amendments made in
Excel. So, I thought I'd download it and give it a quick test drive. I
downloaded and installed the 'lite' versions of the standard tool and,
because I don't have Oracle to hand, the ADO tool too.
I connected to my external data being an Excel workbook, which seems
most appropriate for an Excel tool.
[General note: I encountered several bugs with this product and I had
to restart my machine a few times as a consequence (on one occasion I
got a message saying the product wouldn't quit, forcing me to kill it
at a lower level!) However, the most frustrating bug is that the tool
has trouble with Names ('named ranges') e.g. where the table is
Sheet2$SheetLevelName and I use the 'Count Rows' functionality I get a
syntax error and where it is '29-12-2003$'MyName I'm told my driver is
unable to retrieve column information! Another frustrating problem is
that once connected my data source workbook cannot be subsequently
opened without quitting and restarting Excel.]
Get the external data with the following query:
SELECT MyKeyColumn, MyDataColumn FROM Blah
The rows are correctly returned as follows:
MyKeyColumn MyDataColumn
----------- ------------
5 2
Null Null
5 2
First, try amending a row. Change the nulls to 99. Update Multiple
Rows (Update Multiple Row is not available) reports changes to two
cells. Success! However, if I sort on the key column it reports four
cells changed, meaning it hasn't kept track of the actual row.
Next, try inserting a row (I'll start again with the unamended data).
Insert a new row at the bottom of the returned range and give it
values of 99 for each column. Update Multiple Rows detects no changes.
Try again, this time inserting the row below the first row and it
merely detects the rows as being amended rather than detecting a new
row. If committed this would result in a loss of data.
Finally, delete row (again using the unamended data). I delete the
last row. Update reports the row has changed, clicking yes to confirm
the change brings up a (provider?) error message 'Key information is
insufficient or incorrect...', press OK and I get the tool's own
message for the same error, OK to that, it moves down a row and I get
the same loop of messages (ask whether to change, the provider error,
the tool's error) which presumably would continue until row 65536 was
reached. So, not only did it fail to detect that a row had been
deleted, it completely lost track of the data range.
Based on this quick test I conclude that challenge of keeping track of
external data while being edited in Excel remains unsolved by this
tool.
Jamie.
--