You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA ADO导入600万行CSV到Access报错求助

VBA ADO导入大CSV到Access触发参数错误的解决

最终可用SQL语法

createSQL = "SELECT * INTO newlyСreatedTableName FROM [fileName.csv] IN 'folderPath' [""]Text;HDR=YES;FMT=Delimited[""]"

问题描述

需将含600万行数据的CSV文件,通过Excel中运行的VBA ADO代码导入Access数据库,执行时触发错误号**-2147467259**,提示“参数错误”。

原有错误代码

Function getAccCN(ByVal dbFullPath As String) As Object
    Set getAccCN = CreateObject("ADODB.Connection")
    getAccCN.connectionString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=" & dbFullPath
End Function

Function createSQL() As String
    createSQL = "Select * INTO [" & _ 
                fileName & "] FROM [Data source = " & _
                repFile.ParentFolder.Path & _ 
                "; Extended Properties=""Text;HDR=Yes;FMT=Delimited""]." & _ 
                repFile.Name ' repFile 是通过Scripting.FileSystemObject获取的csv文件对象

    Debug.Print createSQL ' 输出内容如下:
     ' Select * INTO [Classification] FROM [Data source = \\av-fs01.av.local\profiles$\...\Project IQVIA\; Extended Properties="Text;HDR=Yes;FMT=Delimited"].Classification.csv
     ' *.accdb、表名与*.csv的基础名称均为"Classification"
End Function

Function uploadCSV() As Boolean
Dim CN As Object
    Set CN = getAccCN(repFile.ParentFolder.Path & "\" & baseFileName & ".accdb")
    CN.Open
    CN.Execute createSQL() ' 此处触发错误
    Exit Function
ErrHandler:
    Debug.Print Err.Number ' 返回 -2147467259 提示"Wrong argument."
       ' 错误说明:参数类型错误、超出范围或相互冲突
End Function

数据源信息

CSV表头包含Patient ID、Gender、Year of Birth、Year of Death等字段,首行对应为具体数据值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:55:46