12
votes

Comment exporter toutes les tables d'une base de données d'accès à Excel - une feuille pour chaque table

J'ai une base de données d'accès avec environ 30 tables.

Comment puis-je exporter les 30 tables en feuilles séparées dans un classeur Excel?

J'espère trouver un code VBA / VBS que je peux courir de l'accès à l'accès à cette tâche.

Des idées?


0 commentaires

3 Réponses :


18
votes

Vous devriez être capable de faire quelque chose comme ceci: xxx

le second tbl.name est le nom de la feuille de calcul.


0 commentaires

11
votes

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


1 commentaires

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!



4
votes

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


0 commentaires