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