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 に答える