【发布时间】:2016-11-28 14:11:29
【问题描述】:
我正在尝试通过 excel VBA 使用 ADODB.Connection 对象打开 Access 数据库连接,但打开连接时收到错误消息。
错误是“对象变量或未设置块变量”
我使用的是 excel 2010,我的数据库在 Access 2010 中,我还添加了对“Microsoft ActiveX Data Objects 2.8 库”的引用
任何帮助将不胜感激
Dim con As ADODB.Connection
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\vk10084\Desktop\Jobs\PnL\MyDatabaseFiles\Database1.accdb;Persist Security Info=False;"
编辑:
下面是整个代码
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sconString As String
Dim sdbpath As String
Dim sCommand As String
sdbpath = ThisWorkbook.Path & "\Database1.accdb"
sCommand = "INSERT INTO Employees VALUES('Vikas Kumar', '263763')"
Dim cmd As New ADODB.Command
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\vk10084\Desktop\Jobs\PnL\POC on Access\Database1.accdb;Persist Security Info=False;"
cmd.ActiveConnection = con
cmd.CommandText = sCommand
cmd.Execute
con.Close
【问题讨论】:
-
我认为该错误与另一段代码有关。你能把整个过程贴出来吗?
-
@Rdster : 我刚刚添加了整个代码
-
将 sdbpath 变量放入连接字符串时会发生什么?
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sdbpath & ";Persist Security Info=False;" -
在我看来,您在
Dim con As New ADODB.Connection中错过了New,因此没有创建对象 -
感谢@MartinDreher:
Dim con As New ADODB.Connection工作得很好。
标签: excel ms-access vba ms-access-2010