使用VBA ADODB连接Snowflake时出现未指定自动化运行时错误求助
VBA ADODB连接Snowflake触发Automation Error问题排查
问题详情
- 运行VBA代码连接Snowflake时出现运行时错误:Automation error,unspecified error
- 已安装ActiveX相关组件,错误明确发生在执行
cnn.Open ConnectionString语句阶段 - 涉事代码如下:
Sub selectSnow() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim ConnectionString As String Dim StrQuery As String ConnectionString = "DRIVER={SnowflakeDSIIDriver};SERVER=XXXXXX.snowflakecomputing.com;" & _ "DATABASE=XXXXX;SCHEMA=XXXXXX;" & _ "ROLE=XXXXX;UID=XXXXXX;" & _ "PROXY = http://proxy:port;Authenticator = externalbrowser" cnn.Open ConnectionString End Sub
针对性排查与解决建议
- 修正连接字符串格式:去掉参数名与值之间的空格,将
PROXY =改为PROXY=,Authenticator =改为Authenticator=,ADODB对连接字符串的空格容错性极低 - 验证驱动匹配性:确认安装的Snowflake ODBC驱动名称与连接字符串中的
{SnowflakeDSIIDriver}完全一致,可通过「ODBC数据源管理器」查看已安装驱动的准确名称;同时确保Excel(VBA运行环境)的位数(32/64位)与驱动位数完全匹配 - 检查代理有效性:若使用代理,确认代理地址、端口正确,且该代理可正常访问Snowflake服务器;若无需代理,直接移除
PROXY相关参数 - 确认浏览器验证权限:使用
externalbrowser验证方式时,确保当前Windows用户有权通过浏览器登录目标Snowflake账户,且浏览器未阻止Snowflake的登录弹出窗口 - 检查ADODB引用:打开VBA编辑器的「工具-引用」,确认已勾选
Microsoft ActiveX Data Objects 6.1 Library(或更高兼容版本),避免引用过时的ADODB库
内容的提问来源于stack exchange,提问作者Pretzel Stands
相关产品推荐
相关产品推荐

