0

我正在尝试借助 MS Excel 宏将数据插入到我的 SQLCE 创建的“test.SDF”数据库文件表中。我不想将我的 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 库

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

4

1 回答 1

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
于 2013-10-07T09:49:04.563 回答