2013-03-16 112 views
2

我试图连接到Excel中的SQL ce数据库。它不断给我:打开对象_connection的方法失败

Method Open of object _connection failed 

错误消息,每当它到达Conn.Open

我以前从未使用ADO,所以我不确定发生了什么问题。

以下是我的连接脚本。

Sub SQLCeConnect() 
Dim Conn As New ADODB.Connection 
Dim Query As New ADODB.Command 
Dim ConnStr As String 
Dim RecordSet As New ADODB.RecordSet 
Dim i As Integer 

'the connection string 
ConnStr = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=X:\ADOTEST\MYDB.sdf;" 

'Open ADO Connection 
Conn.ConnectionString = ConnStr 
Conn.Open 
Query.ActiveConnection = Conn 
Query.CommandText = "SELECT * From DoorLayers" 

Set RecordSet = Query.Execute 
RecordSet.Close 
Conn.Close 
Conn.ConnectionString = "" 

Do While Not RecordSet.EOF 
    For i = 0 To RecordSet.Fields.Count - 1 
     Debug.Print RecordSet.Fields(i).Name, RecordSet.Fields(i).Value 
    Next 
    RecordSet.MoveNext 
Loop 
RecordSet.Close 

End Sub 
+0

http://www.connectionstrings.com/sql-server-ce – dee 2013-03-18 08:41:06

回答

1

这通常是一个糟糕的连接字符串,但你看起来不错。下一个最常见的原因是您的桌面上没有OLEDB提供程序驱动程序。你可以在这里下载

http://www.microsoft.com/en-us/download/details.aspx?id=5821

+0

无法弄清楚这一点。我安装了oledb提供程序驱动程序。我决定放弃vba方法。我将简单地写入vb.net dll并在Excel中引用它。应该让事情变得更容易。谢谢您的帮助。 – joeb 2013-03-16 23:28:28

0

你关闭连接之前使用它WHILE。 使用while指令后必须关闭它

相关问题