100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > VBA 运行时错误‘-2147217900(80040e14):自动化(Automation)错误

VBA 运行时错误‘-2147217900(80040e14):自动化(Automation)错误

时间:2022-08-09 04:22:37

相关推荐

VBA 运行时错误‘-2147217900(80040e14):自动化(Automation)错误

问题描述:初次尝试使用VBA去操作Access数据库,执行 INSERT 操作的时候,发生了“运行时错误'-2147217900(80040e14):自动化(Automation)错误”异常。

图 1

Sub 连接()Dim con As ADODB.Connection '声明对象变量Set con = New ADODB.Connection '创建对象变量Dim sql As String'建立数据库连接'con.Open "provider=microsoft.ace.oledb.12.0;data source =" & ThisWorkbook.Path & "\test.accdb" '连接access数据库'以下写法等效于 con.OpenWith con.Provider = "microsoft.ace.oledb.12.0".ConnectionString = ThisWorkbook.Path & "\test.accdb".OpenEnd WithMsgBox "连接成功"sql = "insert into check(code,year,month,day) values ('1','','1','1')"'sql = "insert into m_check(m_code,m_year,m_month,m_day) values (3,,1,1)"con.Execute (sql)con.Close '关闭连接Set con = Nothing '释放变量End Sub

解决过程:

1.在Access SQL 查询分析器执行以下SQL,结果类似如图2所示是通过的。但是VBA运行仍然不通过

SQLinsert into check(code,year,month,day) values ('1','','1','1')

2.考虑是不是因为使用了 code 、year 、month 、day 等字段所引起的,所以将这几个字段更改成了 m_code、m_year、m_month、m_day。问题还是存在。

3.检查字段名前后有无空格

4.参考许多案例,发现值是为数字的时候,不需要加 ''(单引号)。【字段类型设置是短文本类型】,问题解决。如图3成功

sql = "insert into m_check(m_code,m_year,m_month,m_day) values (3,,1,1)"

图 2

图 3

总结:

1. 数据库表字段名称不能使用关键字

2.表字段不能使用空格和其他特殊字符

3.排除SQL语法错误

4.值为数字时,不应使用单引号,即使表字段类型是文本类型。

参考:

/question/p-fowngkyr-qb.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。