0

これを行うためのサンプル「ソースコード」を探しているので、すべてのテーブルを同じ名前で拡張子が .xls のスプレッドシートに自動的にエクスポートするボタンを作成できます。テーブルを手動でエクスポートする方法はすでに知っています。

4

1 に答える 1

1

私はテストしていませんが、このようなものはすべて同じワークブックにエクスポートするために機能するはずです...

Dim lTbl As Long
Dim strFile As String
Dim d As Database

 'Set current database to a variable adn create a new Excel instance
Set d = CurrentDb

strFile = "c:\FolderName\FileName.xls" '## Change to file you want

'Loop through all tables
For lTbl = 0 To d.TableDefs.Count
     'If the table name is a temporary or system table then ignore it
    If Left(d.TableDefs(lTbl).Name, 1) = "~" Or _
        Left(d.TableDefs(lTbl).Name, 4) = "MSYS" Then
         '~ indicates a temporary table
         'MSYS indicates a system level table
    Else
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, d.TableDefs(lTbl).Name, strFile
    End If
Next lTbl

 'Release database object from memory
Set d = Nothing

または、これはすべての個別のワークブックに対して:

Dim lTbl As Long
Dim strFile As String
Dim d As Database

 'Set current database to a variable adn create a new Excel instance
Set d = CurrentDb
Set xlApp = CreateObject("Excel.Application")

strFilePath = "c:\Database\" '## Cahnge to where you want to save"

'Loop through all tables
For lTbl = 0 To d.TableDefs.Count
     'If the table name is a temporary or system table then ignore it
    If Left(d.TableDefs(lTbl).Name, 1) = "~" Or _
        Left(d.TableDefs(lTbl).Name, 4) = "MSYS" Then
         '~ indicates a temporary table
         'MSYS indicates a system level table
    Else
        Set wbExcel = xlApp.workbooks.Add
        strFile = d.TableDefs(lTbl).Name & ".xls"
        wbExcel.SaveAs FileName:=strFilePath & strFile, FileFormat:=56
        wbExcel.Close
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, d.TableDefs(lTbl).Name, strFilePath & strFile
        Set wbExcel = Nothing
    End If
Next lTbl

xlApp.Quit
Set wbExcel = Nothing
Set xlApp = Nothing

 'Release database object from memory
Set d = Nothing
于 2013-04-10T06:07:22.327 に答える