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

如何修改OLEDB连接SQL语句以支持超65536行数据(Excel更新Access)

解决Excel到Access插入时的行限制问题

你遇到的65536行限制是因为旧的Jet OLEDB引擎默认识别Excel 97-2003格式的行上限,改用ACE.OLEDB驱动就能支持Excel 2007+的1048576行上限。下面是具体的调整方法:

正确的ACE.OLEDB连接与查询写法

首先要把ACE驱动明确指定为数据提供者,而不是像之前那样把驱动名混在表引用里。正确的SQL查询逻辑应该拆分成「连接字符串配置驱动」+「正常表范围引用」两部分:

1. 连接字符串(以VBA为例)

先在连接阶段指定ACE驱动和Excel文件信息:

Dim conn As Object
Set conn = CreateObject("ADODB.Connection")
' 针对xlsb启用宏的格式,Extended Properties要加Macro参数
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
          "Data Source=K:\FolderName\FileName.xlsb;" & _
          "Extended Properties=""Excel 12.0 Macro;HDR=YES;"";"

2. 简化的查询语句

连接完成后,直接正常引用工作表范围即可,不需要再在FROM里写驱动信息:

SELECT * 
FROM [SheetName$A1:W1048576]  -- Excel 2007+最大行是1048576
WHERE Data = #01/01/2018#;

如果想直接引用工作表的所有有效数据,甚至可以省略范围,直接写[SheetName$],ACE驱动会自动识别实际使用的行,不会被65536行限制。

关键调整点

  • 抛弃旧的混合写法:不要再把Microsoft.ACE.OLEDB.12.0写在FROM子句的表名里,那是Jet引擎的遗留用法,ACE驱动只需要在连接字符串中配置。
  • 匹配驱动位数:如果你的Office是64位,必须安装64位的ACE驱动;32位Office对应32位驱动,否则会出现连接失败或权限报错。
  • xlsb格式注意事项:因为你的文件是.xlsb(二进制宏工作簿),Extended Properties里要加上Macro参数,否则驱动可能无法正确识别文件格式。

完整插入Access的VBA示例

如果是直接通过SQL把Excel数据插入Access表,可以用IN子句整合Excel连接信息:

Sub InsertExcelToAccess()
    Dim connAccess As Object
    Dim strSQL As String
    
    ' 连接目标Access数据库
    Set connAccess = CreateObject("ADODB.Connection")
    connAccess.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                    "Data Source=C:\YourTargetDB.accdb;"
    
    ' 构造跨数据库插入的SQL
    strSQL = "INSERT INTO YourAccessTableName " & _
             "SELECT * FROM [SheetName$A1:W1048576] " & _
             "IN ""K:\FolderName\FileName.xlsb"" ""Excel 12.0 Macro;HDR=YES;"" " & _
             "WHERE Data = #01/01/2018#;"
    
    ' 执行插入
    connAccess.Execute strSQL
    
    ' 清理资源
    connAccess.Close
    Set connAccess = Nothing
    MsgBox "数据插入完成!"
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:41:12