Mysql 打开有密码的连接:运行时错误'-2147221241(80040107)自动化错误未指定错误
我有一个数据库托管在AWS RDS-MySQL数据库上,我试图通过点击按钮,使用VBA将数据从Excel推送到数据库中Mysql 打开有密码的连接:运行时错误'-2147221241(80040107)自动化错误未指定错误,mysql,excel,vba,Mysql,Excel,Vba,我有一个数据库托管在AWS RDS-MySQL数据库上,我试图通过点击按钮,使用VBA将数据从Excel推送到数据库中 Private子命令按钮1\u单击() Dim con作为ADODB连接 Set con=New ADODB.Connection con.Open“Driver={MySQL ODBC 5.2.2 Driver};”和_ “服务器=工作表自动化。***************.rds.amazonaws.com;”_ “数据库=工作表;”&_ “用户=****;”和_ “密码
Private子命令按钮1\u单击()
Dim con作为ADODB连接
Set con=New ADODB.Connection
con.Open“Driver={MySQL ODBC 5.2.2 Driver};”和_
“服务器=工作表自动化。***************.rds.amazonaws.com;”_
“数据库=工作表;”&_
“用户=****;”和_
“密码=****;”
“选项=3;”
变暗rng As范围
设置rng=应用程序范围(“EXP”)
暗行作为范围
对于rng.行中的每一行
Sql=“在TestExperiment(实验id、实验名称、实验方法、实验分析员、实验样本)中插入值(“&row.Cells(1).Value&“,”&row.Cells(1).Value&“,”,“&row.Cells(2).Value&“,”,“&row.Cells(3).Value&“,”&row.Cells(5).Value&“)
con.执行Sql
下一排
结案
MsgBox“完成”
端接头
我正在尝试执行此代码并出现运行时错误,当我尝试调试代码时:
运行时错误'-2147221241(80040107)
con.Open“Driver={MySQL ODBC 5.2.2 Driver};”_
“服务器=工作表自动化。***************.rds.amazonaws.com;”_
“数据库=工作表;”&_
“用户=****;”和_
“密码=****;”
“选项=3;”
此部分用黄色标记,密码行上有一个箭头。请考虑VBA中的以下最佳实践:
Debug\Compile
代码。事实上,VBA应该在光标离开问题行时立即提出或突出显示或红色字母标记行继续的语法问题。请参见下面添加的&
。但这可能是你文章中的一个输入错误
"Password=****;" & _
"Option=3;"
Private子命令按钮1\u单击()
关于错误转到错误句柄
“……代码。。。
出口:
Set con=Nothing'释放所有集合对象
出口接头
错误句柄:
Msgbox错误号&“:”&错误说明
复出
端接头
“…”&row.Cells(3.Value&“,”&row.Cells(5.Value&“)
大多数数据库API都支持ADO。尽管实现将不同于VBA对其他语言的实现,也不同于MySQL对其他数据库的实现,但核心概念是相同的,它涉及一个带有参数占位符的准备语句,这些参数占位符稍后将与文本值绑定。考虑以下调整:
Dim con作为ADODB.Connection,cmd作为ADODB.Command
变暗rng作为范围,行作为范围
Set con=New ADODB.Connection
打开。。。
'准备好的报表(无数据)
sqlStr=“插入到TestExperiment(实验id、实验名称、实验方法,”_
“实验分析员,实验样本”&_
“值(?,,?,?,?)”
'遍历行
对于Application.Range(“EXP”)行中的每一行
Set cmd=New ADODB.Command
使用cmd
.ActiveConnection=con
.CommandType=adCmdText
.CommandText=sqlStr
“绑定参数
.Parameters.Append.CreateParameter(“id_param”,adVarChar,adParamInput,255,row.Cells(1).Value)
.Parameters.Append.CreateParameter(“name_param”,adVarChar,adParamInput,255,row.Cells(2).Value)
.Parameters.Append.CreateParameter(“方法参数”,adVarChar,adParamInput,255,行.单元格(3).Value)
.Parameters.Append.CreateParameter(“analyst_param”,adVarChar,adParamInput,255,row.Cells(4).Value)
.Parameters.Append.CreateParameter(“sample_param”,adVarChar,adParamInput,255,row.Cells(5).Value)
"执行行动"
.执行
以
Set cmd=Nothing
下一排
看看这个,您需要指定选项吗?尝试写入选项,但仍然有相同的错误。谢谢。你错过了从第二行到最后一行的连接和换行。谢谢你提供的所有信息!这对我将来一定有帮助!