代码之家  ›  专栏  ›  技术社区  ›  misnyo

将多个(csv)文件导入到访问数据库的任何方法

  •  2
  • misnyo  · 技术社区  · 17 年前

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

    4 回复  |  直到 10 年前
        1
  •  4
  •   Espo    17 年前

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

    type *.csv > allfiles.txt
    

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

        2
  •  1
  •   Mite Mitreski    17 年前

    您可以编写一个小程序进行导入,请参见 http://www.javaworld.com/javaworld/javaqa/2000-09/03-qa-0922-access.html 对于JavaJDBC CONTICER到MSAccess,因为导入文件是CSV,您可以在任何时间完成此操作…

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

        3
  •  1
  •   David-W-Fenton    17 年前

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

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

    当然,这假设您正在从访问内部进行导入,但是考虑到您的标记,这是您问题的逻辑推论。

        4
  •  1
  •   davejal    10 年前

    这是一个旧的线索,但当我搜索这个问题时它出现了。希望这段代码能帮助人们解决相同的挑战。构建/扩展上面的david-w-fenton提供的示例。

    我先用向导导入了一个文件。导入到名为“bestscripts”的表中,并将导入模板保存为“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