簡體   English   中英

訪問導出查詢為帶有頁眉和頁腳的文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM