2011-04-05 46 views
1

我有一个'accdb'文件,它有一些查询。MS使用VBA访问纯文本

现在我想使用查询的输出重定向到一个文本文件,每个字段由制表符分隔。

我可能要在一个月的过程中这种多次做的,所以我想一个按钮,在单击它,它由1需要查询1和创建的每个查询的一个新的文件。我怎样才能做到这一点?

BTW的第一行是字段名称。

回答

1

下面是代码,你首先得创建像here这样的规范,并用您的查询名称替换名称YourName与它的名称和Query1:

DoCmd.TransferText TransferType:=acExportFixed, _ 
SpecificationName:="YourName", _ 
TableNAme:="Query1", _ 
FileName:="d:\test.txt", _ 
HasFieldNames:=-1 
+0

这工作正常。有没有一种方法可以自定义列名称? – Vivek 2011-04-05 11:53:27

+1

您可以更改查询中的名称,也可以仅为导出而进行其他查询,并在那里重命名该文件。这是最简单的方法。 – Silx 2011-04-05 12:01:12

+0

我每遇到一个运行时错误说“...找不到对象test.txt'...”任何想法如何解决这个,我需要每次创建此文件 – Vivek 2011-04-05 12:36:18

0

您可以使用TransferText方法将其导出为类型acLinkDelim。你可以这样写入位的按钮的单击事件代码或把它变成一个公共函数,它接受查询名称和输出路径,并没有休息为您

+0

如何执行此操作?我不擅长VBA。 – Vivek 2011-04-05 11:30:30

+0

要更改列名称输出,只需构建一个查询并将其导出即可。你可以去: 通过 LN 选择FN为姓,如LN从姓氏为了tblCustomers上面的查询将因此重命名列。如果您在sql视图模式下不能在数据库中输入sql,那么也可以在查询生成器中执行此操作。因此,在查询生成器中执行上面的操作,只需输入列名 姓:FN 因此,上述将导致在Now中使用查询的名称替换表中的名称。如上所示,这也将允许您设置订单等。 – 2011-04-06 02:06:41