Solved

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

Posted on 2014-02-06
5
600 Views
Last Modified: 2014-02-18
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
Comment
Question by:bthouin
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 85
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.
0
 
LVL 1

Author Comment

by:bthouin
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 ?
0
 
LVL 85
ID: 39841422
Yes, I'd go along with that.
0
 
LVL 1

Accepted Solution

by:
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).

Bernard
0
 
LVL 1

Author Closing Comment

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

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
This article describes a serious pitfall that can happen when deleting shapes using VBA.
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

717 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