我一直在研究这个问题,以获得答案或至少一个模板。
我正在使用 MS Access 2007。我需要将查询导出为具有固定宽度规格的文本文件(已经完成)。我遇到的问题是我必须在导出后附加一个特定的页眉和页脚。标头必须具有当前日期,而尾标必须具有要导出的总项目。
诚然,我有点不知所措,但通常会偶然发现一些做类似事情的 VBA 代码。
任何人都可以帮忙吗?
我一直在研究这个问题,以获得答案或至少一个模板。
我正在使用 MS Access 2007。我需要将查询导出为具有固定宽度规格的文本文件(已经完成)。我遇到的问题是我必须在导出后附加一个特定的页眉和页脚。标头必须具有当前日期,而尾标必须具有要导出的总项目。
诚然,我有点不知所措,但通常会偶然发现一些做类似事情的 VBA 代码。
任何人都可以帮忙吗?
没有任何方法可以在导出中定义额外的文本行。
我假设您正在使用 TransferSpreadsheet 方法以固定宽度格式导出查询。这通常是生成固定宽度内容的正确方法,无论是否带有字段标题。
但是如果你想在数据内容之前和之后向文件中添加行,那么你需要打开现有文件,创建一个新文件,附加标题行,然后将现有文件中的数据附加到新文件中,然后附加页脚行,然后关闭这两个文件。
您可以使用内置的 VBA 函数来处理文件,但我发现 Scripting.Runtime 库提供了更直观、面向对象的文件处理方式。
您需要在工具中添加对 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(自动编号、长)、名字、姓氏,并且您的表名是 tablexx。如果您有顺序 ID,则可能是这样的:
创建查询。选择 0 作为 id,format(date(),"dd/mm/yyyy") 作为名字,"" 作为姓氏,"" 作为 nextfield 等从 tablexx order by id 中选择;
和一个查询
选择 9999999999(比您预期的 id 大得多)作为 id,(从 tablexx 中选择 count(id))作为名字,“”作为姓氏,“”作为 nextfield 等,从 tablexx 中按 id 排序;
现在做三者的联合。甚至可以放入空行(id = 1 等)。