Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

in TransferSpreadsheet, why can't I use extension .xlsx with acSpreadsheetTypeExcel12Xml OR acSpreadsheetTypeExcel12???

Posted on 2016-10-25
20
Medium Priority
?
145 Views
Last Modified: 2016-10-30
Hey experts,

I'm having a problem with some data I'm trying to export to Excel 2010. I'm allowing the user to use either the .xls or .xlsx extension. My code looks like this:

DoCmd.TransferSpreadsheet acExport, IIf(Right(txtExportPathAndFileName, 5) = ".xlsx", acSpreadsheetTypeExcel12Xml, acSpreadsheetTypeExcel12), "qryTherapistsCaseloads4Excel", txtExportPathAndFileName, True

When I try to open the exported .xlsx, I get a message that the extension or file type is invalid.

Any ideas?

Thanks
0
Comment
Question by:eantar
[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
  • 8
  • 7
  • 5
20 Comments
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 41859236
try using this for both file extension

DoCmd.TransferSpreadsheet acExport, 10, "qryTherapistsCaseloads4Excel", txtExportPathAndFileName, True

post back the result
0
 
LVL 58
ID: 41859260
I'd do it this way:

If Right(txtExportPathAndFileName, 5) = ".xlsx" Then
  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml,"qryTherapistsCaseloads4Excel", txtExportPathAndFileName, True
Else
   DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12,"qryTherapistsCaseloads4Excel", txtExportPathAndFileName, True
 End If

then put a stop on the IF and verify if the extension is on the end or not and that your falling through  the correct logic (use F8 to step through)

Jim.
0
 
LVL 58
ID: 41859265
Oh and BTW, acSpreadsheetTypeExcel12 is 2007 format, which still is normally an .xlsx extension.  You want acSpreadsheetTypeExcel8 for .XLS

Jim.
0
NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 41859293
or this


If Right(txtExportPathAndFileName, 5) = ".xlsx" Then

DoCmd.TransferSpreadsheet acExport, 10, "qryTherapistsCaseloads4Excel", txtExportPathAndFileName, True

else

DoCmd.TransferSpreadsheet acExport, 9, "qryTherapistsCaseloads4Excel", txtExportPathAndFileName, True

end if
0
 
LVL 5

Author Comment

by:eantar
ID: 41859363
Arrggg! Driving me nuts!

I broke up my If statement up into an if then else and use the literal 10 for acSpreadsheetTypeExce12XML. I'm still getting the invalid message:

message I get.
Any ideas why this might be happening. This is a simple Transfer Spreadsheet call.

Any help would be greatly appreciated.

Thanks.
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 41859368
what access version are you using?
0
 
LVL 5

Author Comment

by:eantar
ID: 41859378
Access 2010.
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 41859392
try doing a compact and repair of your db then try again.

if the error still show,  upload a copy of your db
0
 
LVL 5

Author Comment

by:eantar
ID: 41859425
Hi Jim,

Yes, I read your post. Here's a picture of how I rewrote the code, but I'm still having the same problem.

Debugger and Intermediate window
Any ideas??? It just shouldn't be.

Thanks.
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 41859428
can you upload a copy of the db?
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 41859433
can you test the code, using a table instead of the query "qryTherapistsCaseloads4Excel"
0
 
LVL 5

Author Comment

by:eantar
ID: 41859436
Hi Rey,

Uploading the db is a bit of a problem because I'm working with HIPPA compliant information. I'd have to dummy up some data.

But I just read something I'm going to try before I take that step.

Thank you.

E
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 41859440
what is the SQL statement of query "qryTherapistsCaseloads4Excel"?
0
 
LVL 58
ID: 41859444
He needs to be using acSpreadsheetTypeExcel8 for an .xls extension.

Jim.
0
 
LVL 120

Expert Comment

by:Rey Obrero (Capricorn1)
ID: 41859447
@jim, he is already using it..
0
 
LVL 5

Accepted Solution

by:
eantar earned 0 total points
ID: 41859450
ARRGH! FOUND IT!

Or found something that I didn't know was required to do, but this worked.

When I first ran the Transfer Spreadsheet to xlsx, I ran it with the file type of acSpreadsheetTypeExcel12, not acSpreadsheetTypeExcel12Xml. Then I researched and found that to export to xlsx you need to use acSpreadsheetTypeExcel12Xml. So I changed my file type to that. BUT! I didn't change the file name that I was exporting. I assumed that Excel would just overwrite it. It doesn't. I'm not sure what it does. But when I updated the code to KILL the old file name BEFORE creating the new one, THAT WORKED!!!

Bizarre.

Anyway, thank you guys for sticking with me through this.
0
 
LVL 58
ID: 41859452
Make sure you accept your own comment as answer.

Jim.
0
 
LVL 5

Author Comment

by:eantar
ID: 41859458
Thanks Jim. I always feel bad about doing that because I appreciate the company and feedback while I'm figuring this stuff out, even when I found the answer myself. But I know that those are the rules. Will do.
0
 
LVL 5

Author Closing Comment

by:eantar
ID: 41865748
Found the answer through web search. Thanks again for sticking with me.
0

Featured Post

Fill in the form and get your FREE NFR key NOW!

Veeam® is happy to provide a FREE NFR server license to certified engineers, trainers, and bloggers.  It allows for the non‑production use of Veeam Agent for Microsoft Windows. This license is valid for five workstations and two servers.

Question has a verified solution.

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

If you need a simple but flexible process for maintaining an audit trail of who created, edited, or deleted data from a table, or multiple tables, and you can do all of your work from within a form, this simple Audit Log will work for you.
Instead of error trapping or hard-coding for non-updateable fields when using QODBC, let VBA automatically disable them when forms open. This way, users can view but not change the data. Part 1 explained how to use schema tables to do this. Part 2 h…
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

618 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