I assume your connection type is: Excel File. I had a similar problem in Excel 2010. When you open your Excel Workbook all of the other books become locked allowing users to only open them as Read Only. The lock does not release until you close your Workbook.
I eliminated the problem by setting up connections as MS Query, getting a connection type of Database Query. I'm still connecting to the same Excel Workbooks (both 2003, 2007 & 2010) and obtaining the content of specific sheets, but the lock does not occur.
Create the connection using the "From Other Sources" button on the Data ribbon. Select “Using Microsoft Query”. If the Excel driver is not in the “Choose Data Source” list select "New Data Source" and scroll down and pick the Excel driver you want. The next dialogs will let you select the file and tab(s) you need. (Remember: Tabs are considered System Tables so make sure your options in the "Query Wizard - Choose Columns" dialog has System Tables checked.)
Also, when MS Query returns the link it will have selected the existing columns in the workbook tab. So future refreshes will only return data from those columns. If you add columns to those other workbooks in the future you won't get them unless you update all of your connections. To avoid that, change the query in the "Command Text" (Connection Properties | Definition tab) to: Select * from .....
The other nice part of using Microsoft Query: one connection can obtain and consolidate data from multiple workbook tables into one sheet with just one connection definition. All of the tables being consolidated must have the same number of columns with the same column names. You have to enter the query manually into the "Command Text" (Connection Properties | Definition tab). The from clause must have the fully qualified path and name of the Excel file followed by a period (.) and the sheet name ending with a “$”.
Ex:
SELECT *
FROM "C:\Users\someone\Documents\Stuff\Excel Stuff\file1.xls".`'raw data$'`
UNION ALL
SELECT *
FROM "C:\Users\someone\Documents\Stuff\Excel Stuff\file2.xls".`'raw data$'`
UNION ALL
SELECT *
FROM "C:\Users\someone\Documents\Stuff\Excel Stuff\file3.xls".`'raw data$'`
UNION ALL
SELECT *
FROM "C:\Users\someone\Documents\Stuff\Excel Stuff\file4.xls".`'raw data$'`
This will query and consolidate into one table (or pivottable) all of the data from the four files at one time.
Bookmarks