Export from Access 2007 table to Excel 2007 triggers "External table is not in the expected format"

Posted on 2014-02-06
Medium Priority
Last Modified: 2014-02-18

I have an Access 2007 app that runs automatically on a server and generates a number of reports based on data in an Access database. One of these reports is actually a simple export of one table with currently just under 17,000 rows and about 65 columns to an Excel 2007 (SP3) xlsx spreadsheet wich is generated in the process (i.e. it does not exist before the export).

Since a while, I get errors from time to time on that process. I am using DoCmd.TransferSpreadsheet, and after the first errors I changed the Excel type to acSpreadsheetTypeExcel12Xml, because other types gave me an error. For a while that worked well, but now, 2 days in a row, I got the "External table is not in the expected format" error. I am a bit puzzled as to what I should do. My export statement is:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "myTable", sOutputFileName

Even stranger is that, when in both error cases I ran the app again with breakpoints and executed the same statement by stepping it in Debug mode, it worked fine !

As I have read over the internet that some people say that there is a size limit to what can be imported in Excel with the current method, I'm a bit nervous, because the source table grows in number of rows every day, albeit very slowly.

Can you tell me:
- what could be wrong ?
- what can I do ?

Question by:bthouin
  • 3
  • 2
LVL 86
ID: 39838968
Is anything happening before you run that TransferSpreadsheet call?

Anytime I see code that mysteriously breaks, but then runs fine when I'm in Break mode I think of timing issues. For example, if Excel is busy doing something else, then you might run into conflicts with that.

Author Comment

ID: 39841202
No, nothing is happening with Excel before. This is the first Excel produced each morning. But I thought about something else: although the DoCdm fails, an empty Excel is created. So when I re-run the DoCmd, the Excel with the proper name is already there, it's then just filled with data. And I have read MANY posts in various forums from people having similar troubles that it very often works when the Excel file already exists !

So, should I create the spreadsheet first and then fill it ? Although it should not be needed, if it works, it's good enough for me.

What do you think ?
LVL 86
ID: 39841422
Yes, I'd go along with that.

Accepted Solution

bthouin earned 0 total points
ID: 39856122
Actually, I did something meaner: I repeated the Docmd call a second time if the first one threw an error, which it always does. But because Excel is already runing and the file has been created when the second call is issued, that second call succeeds...:-)

So, problem solved (albeit inelegantly).


Author Closing Comment

ID: 39866883
My own solution, and not very handsome at that...

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

When we develop an application in Ms Access 2016 we should also try to protect the queries, macros and table links. I know I may not have a permanent solution but for novice users, they will not manage to break your application. Below is the detail …
What to do if a split doesn't fit? Or a bunch of invoice lines must be rounded while the sum must match a total? It takes a little, but - when done - it is extremely easy to implement.
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
How can you see what you are working on when you want to see it while you to save a copy? Add a "Save As" icon to the Quick Access Toolbar, or QAT. That way, when you save a copy of a query, form, report, or other object you are modifying, you…

600 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question