逐行读取文本文件并在表中插入/更新值

问题描述:

我在探索DoCmd.TransferText是否能够满足我需要的选项,它看起来像是不会。我需要插入的数据,如果,如果它存在逐行读取文本文件并在表中插入/更新值

我计划逐行读取这样的文本文件中的行不存在,并更新它:

Dim intFile As Integer 
Dim strLine As String 

intFile = FreeFile() 
Open myFile For Input As #intFile 
Line Input #intFile, strLine 
Close #intFile 

我想每一个人线将是一个记录。它可能会用逗号分开,一些领域将有一个"文本限定符,因为该领域本身,我将有逗号

我的问题是我怎么会读,有时有double quotes文本预选赛到表中的逗号分隔的文本文件在访问?

我一直在关注你的相关问题,但我不确定你遇到麻烦的地方。好像你要完成两件事情与该文本文件导入:

  1. 导入文本文件
  2. 追加或更新记录的基础上导入的数据

可能是一张桌子它将这些步骤作为两个单独的操作来处理会更有成效,而不是试图将它们合并为一个操作。

我以为你有第一步工作。如果是这样,请将文本导入到单独的表tblImport中,然后使用该表将更改驱动到主表。如果您担心由于反复导入而导致数据库膨胀,然后删除tblImport中的记录,则可以使tblImport成为外部数据库的链接......以便将膨胀与该数据库隔离开来。

如果您需要更详细的步骤#2帮助,我想您必须告诉我们如何确定哪些导入的记录不存在于主表中,以及如何匹配更新的导入记录和主记录。也许你可以删除在tblImport中有对应的现有主记录,然后将所有的tblImport附加到你的主表中。

+0

谢谢你这确实是正确的解决方案 – 2010-06-07 19:08:35

+0

btw我需要帮助#2我想我会问它 – 2010-06-07 19:22:02

+2

你也可以通过使用IN'mytextfile.txt '语法在SQL SELECT的FROM中(或者对于UPDATE或INSERT)。 – 2010-06-07 19:27:18

我在这里假设你的文本文件格式很好/分隔。因此,请尝试录制宏,然后使用导入向导。 [可以通过命令行激活导入向导,并通过函数调用将所有必要的值传递给它。]然后,将宏生成的代码复制/移动到您的方法中,提供您喜欢的任何变量(这是我以前用过的方法)。

+0

我不认为这是正确的解决方案 – 2010-06-07 18:55:50