[英]Access export query as text with header and footer
我一直在高低研究這個問題,以獲得答案或至少是一個模板。
我正在使用 MS Access 2007。我需要將查詢導出為具有固定寬度規格的文本文件(已完成)。 我遇到的問題是,我必須將特定的頁眉和頁腳附加到導出中。 標題必須有當前日期,預告片必須有導出的總項目數。
不可否認,我很困惑,但通常會遇到一些做類似事情的 VBA 代碼。
任何人都可以幫忙嗎?
沒有任何方法可以在導出中定義額外的文本行。
我假設您使用 TransferSpreadsheet 方法以固定寬度格式導出查詢。 這通常是生成固定寬度內容的正確方法,有或沒有字段標題。
但是如果你想在數據內容前后向文件添加行,那么你需要打開現有文件,創建一個新文件,附加標題行,然后將現有文件中的數據附加到新文件中,然后附加頁腳行,然后關閉這兩個文件。
您可以使用內置的 VBA 函數來處理文件,但我發現 Scripting.Runtime 庫提供了更直觀、面向對象的文件處理方式。
您需要在 Tools..References.. 中添加對 Microsoft Scripting Runtime 庫的引用。
Sub EnhanceExportedFile()
Const exportedFilePath As String = "C:\Foo.txt"
Const newFilePath As String = "C:\NewFoo.txt"
Dim fso As Scripting.FileSystemObject
Dim exportedFile As TextStream
Dim newFile As TextStream
Dim rowCount As Long
Set fso = New Scripting.FileSystemObject
Set exportedFile = fso.OpenTextFile(exportedFilePath, ForReading, False)
Set newFile = fso.CreateTextFile(newFilePath, True)
'Append the date in ISO format
newFile.WriteLine Format(Now, "yyyy-mm-dd")
'Append each line in the exported file
Do While Not exportedFile.AtEndOfStream
newFile.WriteLine exportedFile.ReadLine
rowCount = rowCount + 1
Loop
'Append the total exported lines
newFile.WriteLine rowCount
'Close both files
exportedFile.Close
newFile.Close
End Sub
使用聯合查詢。 假設您的查詢包含字段 ID(自動編號、長)、名字、姓氏,並且您的 tabelname 是 tablexx。 如果您有順序 ID,它可能是這樣的:
創建查詢。 選擇0作為id,格式(日期(),“dd/mm/yyyy”)作為名字,“”作為姓氏,“”作為nextfield等從tablexx order by id;
和一個查詢
選擇 9999999999(比您預期的 id 大得多)作為 id,(從 tablexx 中選擇 count(id))作為名字,"" 作為姓氏,"" 作為 nextfield 等,從 tablexx 按 id 排序;
現在做三者的聯合。 甚至可以輸入空行(id = 1 等)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.