访问VBA-导入* .CSV时出现运行时错误31519。无法导入此文件

米哈尔·罗斯勒

在Access中使用DoCmd.TransferText方法时,出现问题标题中所述的错误。我的代码从当前数据库的表中获取文件名(这些文件是从单个文件夹中存在的2000多个文件中选择的文件),其目标是将这些文件的内容导入Access中的一个表中。请阅读本主题以获取更多信息:VBA过程仅将选定的csv文件(从一个文件夹中)导入到可访问的单个表中

所有文件都具有相同的结构和数据类型。在此处输入图片说明

这是我正在使用的代码:

 Sub Importing_data_into_a_single_table_csv_version()
   Dim my_path As String
   Dim rs As Recordset
   Dim start As Double
   Dim total_time As String

     DoCmd.SetWarnings True
     my_path = "C:\Users\michal\SkyDrive\csv\bossa\mstcgl_csv\"     ' source folder.

     start = Timer         ' remember time when macro starts.

     Set rs = CurrentDb.OpenRecordset("CSV Files")   ' opens the table with file names.
       Do Until rs.EOF
          If Dir(my_path & rs.Fields(0).Value) <> "" Then
          ' DoCmd.TransferText acImportDelim, "macro_link_specification", "all_stocks_3", "my_path & rs.Fields(0).Value", True
             DoCmd.TransferText acImportDelim, "import", "all_stocks_1", "my_path & rs.Fields(0).Value", True
          ' expression. TransferText ( TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName, CodePage )

          End If
          rs.MoveNext
       Loop

   total_time = Format(Timer - start, "hh:mm:ss")
   MsgBox "This code ran successfully in " & total_time, vbInformation
 End Sub

代码在崩溃DoCmd.TransferText acImportDelim, "import", "all_stocks_1", "my_path & rs.Fields(0).Value", True

在此处输入图片说明是否有一些特殊的方法可以准备目标表来导入这些文件?抱歉,此类问题无法解决,但是我已经使用Access 3个星期了,所以我只是一个初学者。我正在使用称为“导入”的导入规范。这可能是问题的原因吗?

这是目标表的外观: 在此处输入图片说明

这是我一直尝试将数据导入其中的另一个表。该表中的字段名称没有特殊字符,并且在字段上设置了相同的数据类型,但是没有区别。返回相同的错误31519。

在此处输入图片说明

其他

事实证明该解决方案很简单:

DoCmd.TransferText acImportDelim, "import", "all_stocks_1", _
                   "my_path & rs.Fields(0).Value", True

在引号内有文件名变量,因此它被用作文字字符串(并给出了无效的路径)。

正确:

DoCmd.TransferText acImportDelim, "import", "all_stocks_1", _
                   my_path & rs.Fields(0).Value, True

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章