Vba 以带有页眉和页脚的文本形式访问导出查询

Vba 以带有页眉和页脚的文本形式访问导出查询,vba,ms-access,text-files,export-to-text,header-fields,Vba,Ms Access,Text Files,Export To Text,Header Fields,我一直在对这个问题进行深入研究,寻找答案或至少是一个模板 我正在使用MS Access 2007。我需要将一个查询导出为一个文本文件,并且已经完成了固定宽度的规范。我遇到的问题是,我必须在导出后附加一个特定的页眉和页脚。标题必须具有当前日期,并且尾部必须具有要导出的全部项目 诚然,我有些不知所措,但通常会遇到一些做类似事情的VBA代码 有人能帮忙吗?在导出中无法定义额外的文本行 我假设您正在使用TransferSpreadsheet方法以固定宽度格式导出查询。这通常是生成固定宽度内容的正确方法,

我一直在对这个问题进行深入研究,寻找答案或至少是一个模板

我正在使用MS Access 2007。我需要将一个查询导出为一个文本文件,并且已经完成了固定宽度的规范。我遇到的问题是,我必须在导出后附加一个特定的页眉和页脚。标题必须具有当前日期,并且尾部必须具有要导出的全部项目

诚然,我有些不知所措,但通常会遇到一些做类似事情的VBA代码


有人能帮忙吗?

在导出中无法定义额外的文本行

我假设您正在使用TransferSpreadsheet方法以固定宽度格式导出查询。这通常是生成固定宽度内容的正确方法,无论是否包含字段标题

但是,如果要在数据内容前后向文件添加行,则需要打开现有文件,创建新文件,附加页眉行,然后将现有文件中的数据附加到新文件,然后附加页脚行,然后关闭这两个文件

您可以使用内置的VBA函数来处理文件,但我发现Scripting.Runtime库提供了更直观、面向对象的处理文件的方法

您需要在Tools中添加对Microsoft脚本运行库的引用。。参考资料

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 auto number、long、first name、lastname,并且您的tabelname是tablexx。如果您有顺序ID,它可能是这样的:

创建一个查询。 按id从表XX中选择0作为id、formatdate、dd/mm/yyyy作为名字、作为姓氏、作为nextfield等

还有一个问题 选择比预期id大得多的9999999999作为id,从tablexx中选择countid作为firstname,作为lastname,作为nextfield等,从tablexx中选择order by id


现在做一个三人联合。甚至可以将空行放在id=1等中。

创建一个在当前日期字段之后带有虚拟字段的单行标题查询,以及一个带有总项目和相同虚拟空白字段的尾部查询。然后在导出之前,在一个联合查询中将它们连接在一起。。。这可能会奏效