将数据直接从 Excel 中的活动工作表导入 SQL Server 数据库的最快方法是什么?
我已经取得了巨大的成功,只需遍历行和列,生成 SQL 字符串,打开 ADODB.Connection 并执行 SQL。但是,该解决方案对于大型数据集来说太慢了。
所以我正在使用 ADO 测试 Jet Provider。它肯定更快,但它需要保存工作簿,我不能要求用户在上传之前保存工作簿。
如果工作簿已保存,则以下代码有效,但如果 ActiveWorkbook 从未保存过,则 ActiveWorkbook.Path 返回空字符串并且代码失败。
Sub UploadViaJet()
Dim objADO As New ADODB.Connection
Dim strSQL As String
Dim lngRecsAff As Long
Set objADO = New ADODB.Connection
objADO.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ActiveWorkbook.Path & _
"\" & ActiveWorkbook.Name & ";" & _
"Extended Properties=Excel 8.0"
strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _
"Server=<server>;Database=<database>;" & _
"UID=<UID>;PWD=<PWD>].test_table " & _
"FROM [" & ActiveSheet.Name & "$]"
objADO.Execute strSQL, lngRecsAff, adExecuteNoRecords
End Sub
有没有更简单、更快捷的方法来做到这一点?