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

Access数据库位置为何影响VBA连接?OpenSchema报错3251排查

Access数据库位置导致OpenSchema触发3251运行时错误的原因

我将完全相同的Access数据库(.accdb)复制到以下5个不同位置:

  • 1: C:\JunkSaves
  • 2: C:\Users\...\OneDrive\Desktop\...\Project Tool\DBTransfer
  • 3: C:\Users\...\OneDrive\Desktop\...\Project Tool\Tool
  • 4: \\Netork\Server$\...\02_Test and Training Environment
  • 5: \\Netork\Server$\...\Projects\_Archive

运行以下VBA代码时:

Private Sub GetUsers()
    Dim Rs As New ADODB.Recordset

    Set Rs = Nothing
    Set ThisWorkbook.TenantDB = Nothing
    Call DBLookup.ConnectToDB 
    'ThisWorkbook.TenantDB 类型为 ADODB.Connection
    Set Rs = ThisWorkbook.TenantDB.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
    ... '执行后续操作
End Sub

当连接位置2和4的数据库时,Set Rs = ... 这一行会触发运行时错误3251。我想明确为何数据库的存储位置会影响Excel VBA脚本执行OpenSchema的能力。

补充信息:

  • 每次测试前都会用PowerShell关闭所有Excel和Access进程
  • 无论数据库在哪个位置,Select、Update等常规查询都能正常运行
  • 已参考Stack Overflow相关问题及微软官方KB文档
  • 将报错位置的数据库复制到正常位置后,脚本可正常执行
  • VBA脚本运行在启用宏的Excel文件中
  • 连接字符串:"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DbPath & ";Jet OLEDB:Database Password=" & constants.ToolPassword & ";"

新增信息:使用微软官方方法在Access中运行同类脚本,得到完全相同的结果——部分位置报错,部分位置正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:34:58