2011-01-14 75 views
1

我需要访问报告才能使用CSV文件作为RecordSource使用CSV /文本文件作为报告的记录源

我已经搜索并尝试了很多事情,但是我找不到实现这个目标的方法。其他数据库中的临时表是而不是的一个选项。

我一直在尝试使用DAO RecordSet,但同时我也阅读RecordSet就好了,我不能将它作为报告的RecordSet和这两种方法导致的错误,我不能用它Name作为RecordSource属性。

请帮我找个办法!

回答

2

我你的报表的记录,使用IN操作符在FROM子句指定一个连接字符串:

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

基本上,文本文件中有两个部分,第一个是文件所在的路径,第二个是括号内的连接字符串选项。通过创建文本文件的链接并检查其连接字符串,我发现了参数的含义。

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

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

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

但是,如果是这种情况,那么为什么不应该只创建链接到文本文件并将其永久保留在那里,这是很有原因的!

1

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

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

+0

我以前找到过这方面的信息,但是我找不到TransferText方法或CreateTableDef函数(应该是等价的)的文档。你能否提供一个参考手册的链接?我不知道它需要什么论点! – Falcon 2011-01-14 11:13:01