• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 689
  • Last Modified:

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

Hi

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 ?

Thanks
Bernard
0
bthouin
Asked:
bthouin
  • 3
  • 2
1 Solution
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
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.
0
 
bthouinAuthor Commented:
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 ?
0
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
Yes, I'd go along with that.
0
 
bthouinAuthor Commented:
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).

Bernard
0
 
bthouinAuthor Commented:
My own solution, and not very handsome at that...
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now