J'ai une base de données d'accès avec environ 30 tables. P>
Comment puis-je exporter les 30 tables en feuilles séparées dans un classeur Excel? P>
J'espère trouver un code VBA / VBS que je peux courir de l'accès à l'accès à cette tâche. P>
Des idées? P>
3 Réponses :
Vous devriez être capable de faire quelque chose comme ceci: le second tbl.name code> est le nom de la feuille de calcul. P> p>
Voici le module complet que j'ai utilisé.
Sub expotT()
Dim td As DAO.TableDef, db As DAO.Database
Set db = CurrentDb()
For Each td In db.TableDefs
If Left(td.Name, 4) <> "msys" Then
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _
td.Name, "C:\xExcelTables.xls", True, td.Name
End If
Next
End Sub
C'était très utile pour moi. J'avais une erreur avec le code de réponse me disant qu'une table "MSYS *" était manquante. J'apprécie votre travail autour!
Voici une version formée et fixe du code ci-dessus. Nous n'avons pas besoin de tables de MSYS dans le fichier Excel et le préfixe DBO dans les noms de feuilles. L'exportation peut également être rendue par rapport à MS Access DB ou fixe.
Voici Code: P>
Sub exportTables2XLS()
Dim td As DAO.TableDef, db As DAO.Database
Dim out_file As String
out_file = CurrentProject.path & "\excel_out.xls"
Set db = CurrentDb()
For Each td In db.TableDefs
If Left(td.Name, 4) = "MSys" Then
'// do nothing -- skip
Else
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, _
td.Name, out_file, True, Replace(td.Name, "dbo_", "")
End If
Next
End Sub