Vous pouvez envisager d'utiliser Automation pour créer une feuille de calcul Excel et la remplir par vous-même plutôt que d'utiliser une macro.
Voici une fonction que j'ai utilisée dans le passé pour faire exactement cela.
Public Function ExportToExcel(FileToCreate As String, ByRef rst As ADODB.Recordset)
'Parms: FileToCreate - Full path and file name to Excel spreadsheet to create
' rst - Populated ADO recordset to export
On Error GoTo Err_Handler
Dim objExcel As Object
Dim objBook As Object
Dim objSheet As Object
'Create a new excel workbook; use late binding to prevent issues with different versions of Excel being
'installed on dev machine vs user machine
Set objExcel = CreateObject("Excel.Application")
Set objBook = objExcel.Workbooks.Add
'Hide the workbook temporarily from the user
objExcel.Visible = False
objBook.SaveAs (FileToCreate)
'Remove Worksheets so we're left with just one in the Workbook for starters
Do Until objBook.Worksheets.Count = 1
Set objSheet = objBook.Worksheets(objBook.Worksheets.Count - 1)
objSheet.Delete
Loop
Set objSheet = objBook.Worksheets(1)
rst.MoveFirst
'Use CopyFromRecordset method as this is faster than writing data one row at a time
objSheet.Range("A1").CopyFromRecordset rst
'The UsedRange.Rows.Count property can be used to identify the last row of actual data in the spreadsheet
'This is sometimes useful if you need to add a summary row or otherwise manipulate the data
'Dim lngUsedRange As Long
'lngUsedRange = objSheet.UsedRange.Rows.Count
'Save the spreadsheet
objBook.Save
objExcel.Visible = True
ExportToExcel = True
Err_Handler:
Set objSheet = Nothing
Set objBook = Nothing
Set objExcel = Nothing
DoCmd.Hourglass False
If Err.Number <> 0 Then
Err.Raise Err.Number, Err.Source, Err.Description
End If
End Function
Pouvez-vous poster votre code? (Sur ma réponse vous avez indiqué que vous avez essayé le docmd.) – JeffO
Quelle est la version de destination d'Excel? La limitation sur le nombre de lignes est incontestablement une limite Excel, pas une limite d'accès. Excel 2007 augmente le nombre de lignes, BTW. –
En fait, Tony, je pense que l'étiquette Access 2002 est une information utile ici, car elle limite les formats d'exportation. Bien sûr, la façon dont je pense que les balises devraient être utilisées est que MS-ACCESS seulement devrait être utilisé et la version spécifique indiquée dans la question, mais vous avez enlevé le tag mais n'a pas ajouté la version dans le texte de la question. Cela perd de l'information utile, à mon avis. –