Access VBA运行时错误31519:使用TransferText导入CSV文件失败求助
Access VBA执行TransferText导入CSV触发31519错误的解决方案
31519错误的核心触发原因是程序无法识别待导入的目标文件,你的代码和配置存在以下可排查的问题:
- 代码中
DoCmd.TransferText的第4个参数传入的是文件夹路径C:\Users\ngrayhek\Desktop\Names\,没有指定到具体的CSV文件,该方法要求此参数必须传入待导入文件的完整绝对路径(包含.csv后缀名) - 确认你保存的导入规范名称确实为
Names,无拼写错误,且规范内已将分隔符设置为短横线-(你的CSV内容用短横线做字段分隔,和默认逗号分隔不同,必须和手动导入时的配置完全一致) - 确认目标表
test的表结构和导入规范的字段映射匹配,若表不存在则确认导入规范没有字段映射错误 - 确认待导入的CSV文件没有被Excel或其他程序占用打开
修正后的参考代码
' 不要用import做过程名,属于VBA保留字,避免命名冲突 Sub ImportNamesCSV() ' 假设你的CSV文件名为Names.csv,放在对应文件夹下,替换为你实际的文件名 DoCmd.TransferText acImportDelim, "Names", "test", "C:\Users\ngrayhek\Desktop\Names\Names.csv", True End Sub
进一步排查方案
如果修改后还是报错,可以先省略导入规范参数测试基础导入逻辑是否通顺,排除路径、文件本身的问题:
Sub TestBasicImport() ' 省略导入规范,执行时会弹出导入向导手动确认配置 DoCmd.TransferText acImportDelim, , "test", "C:\Users\ngrayhek\Desktop\Names\Names.csv", True End Sub
如果该代码可以正常执行,说明之前保存的Names导入规范存在问题,删除原有规范后重新通过手动导入流程保存一次即可。
内容的提问来源于stack exchange,提问作者Graybound
相关产品推荐
相关产品推荐

