我正在尝试在我创建的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库
感谢您的帮助以及对此问题的任何进一步许可,请发表评论。
答案 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