[AccessD] DoCmd.TransferSpreadsheet tip

Gustav Brock gustav at cactus.dk
Wed Jun 21 06:51:58 CDT 2023


Hi Ryan

This is the best tip I've seen in years. Thanks!

I see one issue though. If you pass a range/worksheet name with a leading digit, for example "2023", the worksheet will be given that name plus a leading underscore: "_2023".
In general, Access silently replaces spaces and special characters with underscores, so this behaviour indicates, that a space or something has been prefixed and then replaced.

Are you aware of a workaround?

The "method" I've found is to use a name having a letter as the first character, like: "Balance 2023".
This results, as expected, in the worksheet name "Balance_2023", which is acceptable.

/gustav


-----Oprindelig meddelelse-----
Fra: AccessD <accessd-bounces+gustav=cactus.dk at databaseadvisors.com> På vegne af Ryan W
Sendt: 21. april 2023 18:17
Til: Access Developers discussion and problem solving <accessd at databaseadvisors.com>
Emne: [AccessD] DoCmd.TransferSpreadsheet tip

I was looking for a way to export some queries to a spreadsheet, the client wanted 3 worksheets in the workbook.

Despite what the docs say about specifying a range argument for exports causes it to fail, if you specify a string rather than a range it WILL create the excel file and the sheet will be named what you specify in the range.

Subsequent TransferSpreadsheet commands to the same file with a different range name will add that data to a new worksheet.

I wish I'd known this some time ago as I've had to tell our clients on occasion that we can only provide "flat" excel files.  I didn't want or have the knowledge to build a spreadsheet routine that used COM to try and stuff data into worksheets on a workbook, so this makes it super convenient and easy.




:
https://learn.microsoft.com/en-us/office/vba/api/access.docmd.transferspreadsheet

*Range* Optional *Variant* A string expression that's a valid range of cells or the name of a range in the spreadsheet. This argument applies only to importing. Leave this argument blank to import the entire spreadsheet.
When you export to a spreadsheet, you must leave this argument blank. *If you enter a range, the export will fail.*
-- 


More information about the AccessD mailing list