2019年10月14日 星期一

Access VBA - Export Tables to Excel File 將資料匯出至 Excel 檔案(十一)

Access VBA - Export Tables to Excel File 將資料匯出至 Excel 檔案(十一):

在 Access 中創建了簡單報表(Report)後,報表是可以直接顯示和打印,但也可以輸出至不同的格式,在報表顯示輸出會利用按鍵方式,開啓報表,VBA 會使用 DoCmd. TransferSpreadsheet 句子將資料匯出至 Excel File,用 Excel 打開 File 來處理資料,非常方便。

Export Tables to Excel File 將資料匯出至 Excel 檔案
右鍵單擊 → 佈局視圖 → 加入按鍵控件 → 更改按鍵屬性 → 選擇單擊事件 → … 寫入 VBA 代碼
執行程式 → Output to Excel 確定
打開 Excel 程式 → 在我的文件找尋 Company_yyyymmddhhmmss.xls → 開啓檔案
TransferSpreadsheet VBA 程式代碼:
Option Compare Database
Private Sub btn_Report_Excel_Click()

Dim stDocName As String
Dim DestTable As String
Dim OutExcel  As String
Dim SourceDB  As Database

DoCmd.OpenReport stDocName, acViewPreview

MsgBox ("Output to Excel File")
stDocName = "Rpt_Company"
DestTable = "Temp"
OutExcel = "Company_" & Format(Date, "yyyymmdd") & Format(Time, "hhmmss") & ".xls"

Set SourceDB = CurrentDb
SourceDB.Execute "SELECT COMPANY.* " _
& "INTO [" & DestTable & "] From COMPANY;"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, DestTable, OutExcel
SourceDB.Execute "DROP TABLE [" & DestTable & "];"

End Sub

TransferSpreadsheet句法(Syntax):
  • Expression. expression.TransferSpreadsheet (TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)
  • Expression代表DoCmd對象的變量。
TransferSpreadsheet VBA 程式代碼示範:
DoCmd.TransferSpreadsheet acImport, 3, _
 "Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"

TransferSpreadsheet(Parameters):
Name
名稱
必需/可選
數據類型
描述說明
TransferType
傳輸類型
可選
AcDataTransferType
您要進行的轉移的類型。 默認值為acImport
SpreadsheetType
電子表格類型
可選
AcSpreadSheetType
要從中導入,導出到或鏈接到的電子表格的類型。
TableName
表名
可選
變體
字符串表達式,它是您要將電子表格數據導入其中,從中導出電子表格數據或從中鏈接電子表格數據的Office Access表的名稱,或者是要將其結果導出到電子表格中的Access select查詢。
FileName
文檔名稱
可選
變體
字符串表達式,它是您要從中導入,導出到或鏈接到的電子表格的文件名和路徑。
HasFieldNames
HasFieldNames
可選
變體
導入或鏈接時,使用True 1)將電子表格的第一行用作字段名稱。 使用False 0)將電子表格的第一行視為普通數據。 如果將此參數保留為空白,則採用默認值( False )。 當您將Access表導出或選擇查詢數據到電子表格時,無論您為該參數輸入什麼內容,字段名稱都會插入到電子表格的第一行中。
Range
範圍
可選
變體
字符串表達式,它是單元格的有效範圍或電子表格中範圍的名稱。 此參數僅適用於導入。 將此參數保留為空白以導入整個電子表格。 導出到電子表格時,必須將此參數留空。 如果輸入範圍,則導出將失敗。
UseOA
OA
可選
變體
不支持該參數。

AcDataTransferType枚舉(Enumeration):
Name
數值
描述說明
acExport
1
數據導出。
acImport
0
(默認)數據導入
acLink
2
該數據庫鏈接到指定的數據源

AcSpreadSheetType 枚舉(Enumeration):
Name
數值
描述說明
acSpreadsheetTypeExcel3
0
Microsoft Excel 3.0 format
acSpreadsheetTypeExcel4
6
Microsoft Excel 4.0 format
acSpreadsheetTypeExcel5
5
Microsoft Excel 5.0 format

Operation System : Microsoft Windows 7 
Version : Microsoft Office Access 2007

相關網址:
※ DoCmd.TransferSpreadsheet method (Access)

相關網址:
※ Access - 開始使用 Microsoft Office Access 2007(一)
※ Access - 在 Access 2007 中建立表單(二)
※ Access - 在 Access 2007 編程 VBA(三)
※ Access - 在 Access 2007 語系錯誤訊息(四)
※ Access VBA - TextBox Object 文本框對象(一)
※ Access VBA - ListBox Object 列表框對象(二)
※ Access VBA - ComboBox Object 組合框對象(三)
※ Access VBA - CommandButton Object 按鈕命令對象(四)
※ Access VBA - CheckBox Object 復選框對象(五)
※ Access VBA - Create a Table 建立資料表(六)
※ Access VBA - Create a Form 創建窗體(七)
※ Access VBA - Add a Subform to Existing Form 在主表單加入子窗體(八)
※ Access VBA - Create a Simple Report 創建一個簡單報表(九)
※ Access VBA - Display Report 報表顯示輸出(十)
※ Access VBA - Export Tables to Excel File 將資料匯出至 Excel 檔案(十一)
※ Access VBA - Export Tables to Other File Format 將資料匯出至其他文件格式(十二))

2019年 10月 14日 天氣報告
氣溫:26.6@ 20:30
相對濕度:百分之 70%
天氣:大致多雲

沒有留言:

張貼留言