source

Access Database의 모든 테이블을 Excel로 내보내는 방법 - 각 테이블에 대한 시트

factcode 2023. 10. 16. 22:06
반응형

Access Database의 모든 테이블을 Excel로 내보내는 방법 - 각 테이블에 대한 시트

30개의 테이블이 있는 Access 데이터베이스를 가지고 있습니다.

엑셀 워크북에서 30개의 테이블을 모두 별도의 시트로 내보내려면 어떻게 해야 합니까?

이 작업을 수행하기 위해 Access 내에서 실행할 수 있는 VBA/VBS 코드를 찾고 싶습니다.

무슨 생각 있어요?

다음과 같은 작업을 수행할 수 있어야 합니다.

Dim tbl as Tabledef
For Each tbl in Currentdb.TableDefs
  DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, tbl.name, "PathName.xls", True, tbl.name
Next

두번째tbl.name워크시트 이름입니다.

제가 사용한 전체 모듈은 여기 있습니다.

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

위 코드의 형식 및 고정 버전입니다.우리는 엑셀 파일의 MSys 테이블과 시트 이름의 dbo 접두사가 필요 없습니다.MS Access db와 관련하여 내보내기를 하거나 수정할 수도 있습니다.

코드는 다음과 같습니다.

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

언급URL : https://stackoverflow.com/questions/4036772/how-to-export-all-tables-from-an-access-database-into-excel-a-sheet-for-each-t

반응형