使用 VBA 从 MS Access 表创建格式化文本文件

Posted

技术标签:

【中文标题】使用 VBA 从 MS Access 表创建格式化文本文件【英文标题】:Create a formated textfile from an MS Access table using VBA 【发布时间】:2015-09-03 14:41:04 【问题描述】:

我正在尝试使用 VBA 将 MS Access 表写入文本文件。不幸的是,必须选择表格的特定列,并且文本文件应该具有特定的格式。

Access 表有很多字段,我只想选择 Field1、Field2 和 Field3 列。

创建的文本文件应具有以下格式:

A.1 17
A.2 15
A.3 14
B.1 10
B.2 10
B.3 46
C.1 15
C.2 10
C.3 15

所以 Field1 和 2 应该用点分隔,Field2 和 3 应该用空格分隔。 到目前为止,我只设法使用 ADODB.Recordset 读取了 Access 表,但没有进一步了解。

【问题讨论】:

【参考方案1】:

基本上你需要打开一个文件写入它。这是基于我发现 here 的一种方法来演示:

Dim FilePath As String
Dim RowData As String

'' ... other variables set like 'LastRow', etc.

FilePath = Application.DefaultFilePath & "\file.txt"
Open FilePath For Output As #2

'' I'd replace this for loop with code that would walk the RecordSet and write the data with 
'' Recordset.Open and .MoveNext's as Andre451 indicated in the comments
For i = 1 To LastRow 
    RowData = "whatever pattern"
    Write #2, RowData
Next i
Close #2

(已编写但未测试)

有一种方法可以将表格/查询结果直接转储到给定预定义模式的文本文件中,但我一直觉得它非常挑剔,所以上面可能是你最快和最肮脏的解决方案。

【讨论】:

您必须在其中添加一些 Recordset.Open.MoveNext 才能将表数据实际写入文件。

以上是关于使用 VBA 从 MS Access 表创建格式化文本文件的主要内容,如果未能解决你的问题,请参考以下文章

关于 MS Access 2003 和 VBA 编程

MS Access VBA:创建具有多个工作表的 Excel 工作簿

MS Access:使用 VBA 进行 SQL 插入的日期格式

VBA脚本检查MS ACCESS上是不是存在表,如果存在则删除

通过 VBA 在 MS Access 中自动链接/刷新 ODBC 链接表

MS Access中绑定/未绑定形式的问题