You need to enable JavaScript to run this app. VBA-ADO连接CSV文件提示路径无效的-2147467259运行时错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

VBA-ADO连接CSV文件提示路径无效的-2147467259运行时错误如何解决

问题排查与解决方案

你遇到的错误本质是ACE OLEDB 文本驱动的连接参数配置错误:使用文本驱动查询CSV时,Data Source参数必须填写CSV文件所在的文件夹路径,而非CSV文件的完整路径,文件名需要放在SQL查询语句中指定。


1 修正连接字符串与查询逻辑

正确的配置规则:

  • Data Source 填CSV所在的文件夹,末尾加反斜杠
  • SQL查询语句中写CSV文件名,带扩展名,文件名包含特殊字符时加方括号包裹

修正后的代码示例:

Sub test()
    Dim myConn As New ADODB.Connection
    Dim recSet As New ADODB.Recordset
    Dim folderPath As String
    Dim connStrng As String
    Dim qryStrng As String

    ' 仅填CSV所在的文件夹路径,末尾保留反斜杠
    folderPath = "P:\myDocs\"

    ' 修正后的连接字符串
    connStrng = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & folderPath _
    & ";Extended Properties=""text;HDR=YES;FMT=Delimited;"""

    ' 查询语句中指定CSV文件名
    qryStrng = "SELECT * FROM [FileName.csv]"

    myConn.Open connStrng
    Set recSet = myConn.Execute(qryStrng)
    
    ' 后续处理逻辑
    ' ...
    
    ' 释放资源
    recSet.Close
    myConn.Close
    Set recSet = Nothing
    Set myConn = Nothing
End Sub

2 验证路径有效性与权限

  • 确认P:\myDocs\路径真实存在:直接在Windows资源管理器地址栏输入该路径,验证可正常打开
  • 如果P盘是网络映射盘,可替换为UNC路径测试(例如\\文件服务器地址\共享名\myDocs\),避免管理员权限运行Office时映射盘不识别的问题
  • 确认当前Windows账号对该文件夹有读取权限,确认FileName.csv文件未被其他程序独占打开
  • 检查文件扩展名是否隐藏:如果系统默认隐藏已知扩展名,要确认文件实际名称不是FileName.csv.txt

3 验证ACE驱动版本匹配

确认已安装Microsoft Access Database Engine(ACE驱动),且驱动位数和你使用的Office位数完全一致(32位Office对应32位驱动,64位Office对应64位驱动),版本不匹配也会触发路径类报错


内容的提问来源于stack exchange,提问作者OldNick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 03:21:02