使用CSV /文本文件作为报告的记录源

时间:2011-01-14 11:03:52

标签: ms-access vba

我需要访问报告才能将CSV文件用作RecordSource

我搜索并尝试了很多东西,然而,我找不到实现这一目标的方法。某些其他数据库中的临时表是不是选项。

我一直在尝试使用DAO RecordSet,但我可以阅读RecordSet就好了,我无法将其设置为报告的RecordSet,我无法使用它Name 1}}作为RecordSource属性,因为两种方法都会导致错误。

请帮我找个方法!

2 个答案:

答案 0 :(得分:2)

我的报告的Recordsource,使用FROM子句中的IN运算符来指定连接字符串:

  SELECT [TestMailing#txt].*
  FROM [TestMailing#txt] IN 'C:\Documents and Settings\My Documents'[Text;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=1252];

基本上,文本文件的IN有两部分,第一部分是文件所在的路径,第二部分是括号内的连接字符串选项。我通过创建文本文件的链接并检查其连接字符串,找出了那些参数。

最后,您将文本文件称为表,使用其文件名替换#。为扩展。

使用“访问查询”构建器时,可以将这些选项放在查询的属性表中,其中路径为Source Database属性,连接字符串选项为Source Connect Str属性。将这些放入属性表后,可以单击“添加表”工具栏图标以获取指定文件夹中特定连接字符串的文件列表。

如果您的报告将使用相同的结构文件,则可以通过创建已保存的导入规范来增强可靠性,这也可以在连接字符串选项中指示。您可以通过创建文本文件的链接表,然后检查其连接字符串来找到它。

然而,如果是这样的话,那么你不应该只是创建链接到文本文件并将其永久保留在那里,这是没有什么理由的。

答案 1 :(得分:1)

执行此操作的唯一方法是AFAIK,用于链接csv文件。您可以在运行时链接并在报告完成后取消链接,如果保持链接是一个问题。 DoCmd对象的TransferText方法允许您在VBA中进行链接。

更多信息:http://msdn.microsoft.com/en-us/library/aa220768(v=office.11).aspx