使用宏连接到SQL Compact Edition

时间:2013-09-21 10:12:44

标签: excel excel-vba sql-server-ce vba

我正在尝试在我创建的SQLCE中插入数据" test.SDF"数据库文件表,借助于使用MS Excel宏。我不想将我的Excel文件转换为.SDF,但希望使用宏从我的Excel文件中将数据插入SDF。

直到现在我已经完成了这个

    Dim strconn As String
    Dim cnt As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim cmd As ADODB.Command


    strconn = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5; Data Source= H:\Excel files and Macros\TechData.sdf;Persist Security Info=False;"
    Set cmd = New ADODB.Command
    Set cnt = New ADODB.Connection
    cnt.ConnectionString = strconn
    cnt.Open
    Runsql ("Insert into UnitData Values(" & Version & ", " & Acoustic & ")")

    cnt.Close

我遇到以下错误"错误3706:提供商无法执行,可能不会 正确安装。"

在" cnt.Open" 我还添加了参考" Microsoft ActiveX"数据对象2.0库

感谢您的帮助以及对此问题的任何进一步许可,请发表评论。

1 个答案:

答案 0 :(得分:0)

好的,请用以下代码替换代码,并记住您的系统中已安装SQLCE 3.5。

    Dim stConnection As String
    Dim ADODBcnt As New ADODB.Connection

    Dim dbRecord As New ADODB.Recordset
    dbRecord.CursorLocation = adUseServer
    dbRecord.CursorType = adOpenKeyset
    dbRecord.LockType = adLockBatchOptimistic

    stConnection = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5; Data Source= filepath\file.sdf;Persist Security Info=False"
    'Instantiate the ADODB objects.'
    If Not ADODBcnt.State Then
        ADODBcnt.ConnectionString = stConnection
        ADODBcnt.Open
    End If

C_stSQL = "Insert into UnitData Values('" & Version & "', '" & Acoustic & "');"

    dbRecord.Open C_stSQL, ADODBcnt
     If (dbRecord.State = 1) Then
         dbRecord.Close
     End If

    ADODBcnt.Close