以何种方式将多个(csv)文件导入Access数据库

时间:2009-07-24 10:29:01

标签: database ms-access csv import

我有多个具有相同方案的csv文件,我想一步导入它们。解决方案可能是使用“导入向导”,但我只能用它导入一个文件。哦,这将是最好在msaccess2003工作。 THX

4 个答案:

答案 0 :(得分:4)

最简单的解决方案是启动dos提示符,切换到文件所在的目录,然后键入:

type *.csv > allfiles.txt

如果您经常这样做,可以创建一个batch-file,您可以从桌面上双击。

答案 1 :(得分:1)

你可以编写一个小程序,用于导入http://www.javaworld.com/javaworld/javaqa/2000-09/03-qa-0922-access.html for java JDBC conector到msaccess,因为导入文件是csv,你可以立即执行此操作...

其他语言还有其他导入选项

答案 2 :(得分:1)

如果您只想使用文件列表驱动导入,则不需要批处理文件。您可以使用Dir()获取文件列表:

  Dim strCSVFileName As String 

  strCSVFileName = Dir("*.csv")
  Do Until strCSVFileName  = vbNullString
     [import strCSVFileName]
     strCSVFileName = Dir()
  Loop

当然,这假设您正在从Access中进行导入,但是根据您的标记,这是您问题的逻辑推理。

答案 3 :(得分:1)

这是一个旧线程,但当我搜索问题时它出现了。希望此代码可以帮助某人解决相同的挑战。建立/扩展David-W-Fenton提供的示例,上面。

我首先使用向导导入了一个文件。导入到名为“bestTranscripts”的表中并将导入模板保存为“BestImport” - 然后在TransferText命令中使用这些值。


Function ImportFiles()

On Error Resume Next

Dim cnn As New ADODB.Connection
Dim targetSet As New ADODB.Recordset

Dim sourceDirectoryName As String
Dim sourceFileName As String


sourceDirectoryName = "<path containing files>"

sourceFileName = Dir(sourceDirectoryName & "\*.txt")
Do Until sourceFileName = vbNullString
    DoCmd.TransferText acImportDelim, "BestImport", "bestTranscripts", sourceFileName
    sourceFileName = Dir()

Loop


End Function