Использование Excel VBA для извлечения данных из MS SQL в Excel.Это всего 2000 строк и 30 столбцов, но выполнение строки .CopyFromRecordset
занимает более 10 минут.
Я считаю, что виновником является тот факт, что при вставке в Excel из SQL происходит автоматическое форматирование.Я заметил, что перенос текста происходит автоматически, а также некоторые размеры строк и столбцов.Не уверен, как это отключить.
Любая помощь будет принята с благодарностью!
Sub ADOExcelSQLServer()
' Objects 2.x library
Dim Cn As ADODB.Connection
Dim Server_Name As String
Dim Database_Name As String
Dim User_ID As String
Dim password As String
Dim SQLStr As String
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Server_Name = "eq-t-sql01"
Database_Name = "HSCSN_DR"
SQLStr = "SELECT e.*, m.DOB FROM [HSCSN_DR].[dbo].[EPSDT_Call_Log_Answers] e join HSCSN_DR..Q_MEMBERS m on m.MedicaidID = e.MedicaidID Order By [Attempt 1 Date] Desc, MedicaidID"
Set Cn = New ADODB.Connection
Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & ";Trusted_connection=yes;"
'& _";Uid=" & User_ID & ";Pwd=" & Password & ";"
rs.Open SQLStr, Cn, adOpenStatic
' Dump to spreadsheet
With Worksheets("Data").Range("A2") ' Enter your sheet name and range here
.ClearContents
.CopyFromRecordset rs
End With
rs.Close
Set rs = Nothing
Cn.Close
End Sub