Добрый день!
Есть код, который из Excel запрашивает данные с MS SQL Server 2005 в зависимости от введенных дат. Все работает нормально, но до определенного этапа. Часть данных выгружается, часть нет. Потом выскакивает ошибка:
Run-Time error '-2147467259 (80004005)'
"Method 'CopyFromRecordset' of object 'Range' failed"
Строка на которой все останавливается:
.Range("A2").CopyFromRecordset rs
Вот кусок кода:
Public Sub SQLCon()
Dim cn As New ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim errErrs As ODBCErrors
Dim errErr As ODBCError
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
Set cmd = CreateObject("ADODB.Command")
cn.ConnectionString = "Provider=SQLOLEDB.1;Password=****;Persist Security Info=True;User ID=****;Initial Catalog=rrrrr;Data Source=llll"
cn.ConnectionTimeout = 0
cn.Open
StartData = UserForm1.TextBox1.Text
FinishData = UserForm1.TextBox2.Text
SQLstr1 = "select * from dbo.Report_Day_Main" & "(" & "'" & StartData & "'" & ", " & "'" & FinishData & "'" & ")"
With cmd
.ActiveConnection = cn
.CommandText = SQLstr1
End With
Set rs = cmd.Execute()
Sheets("Лист2").Visible = xlSheetVisible
With ThisWorkbook.Worksheets("Лист2")
.Name = "Отчет1"
.Range("A2").CopyFromRecordset rs
.Columns("B:B").NumberFormat = "m/d/yyyy"
.Columns("N:N").NumberFormat = "m/d/yyyy"
End With
.....
С чем это может быть связано? Заранее спасибо!
PS: MS Office 2003, win xp sp2
Есть код, который из Excel запрашивает данные с MS SQL Server 2005 в зависимости от введенных дат. Все работает нормально, но до определенного этапа. Часть данных выгружается, часть нет. Потом выскакивает ошибка:
Run-Time error '-2147467259 (80004005)'
"Method 'CopyFromRecordset' of object 'Range' failed"
Строка на которой все останавливается:
.Range("A2").CopyFromRecordset rs
Вот кусок кода:
Public Sub SQLCon()
Dim cn As New ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim errErrs As ODBCErrors
Dim errErr As ODBCError
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
Set cmd = CreateObject("ADODB.Command")
cn.ConnectionString = "Provider=SQLOLEDB.1;Password=****;Persist Security Info=True;User ID=****;Initial Catalog=rrrrr;Data Source=llll"
cn.ConnectionTimeout = 0
cn.Open
StartData = UserForm1.TextBox1.Text
FinishData = UserForm1.TextBox2.Text
SQLstr1 = "select * from dbo.Report_Day_Main" & "(" & "'" & StartData & "'" & ", " & "'" & FinishData & "'" & ")"
With cmd
.ActiveConnection = cn
.CommandText = SQLstr1
End With
Set rs = cmd.Execute()
Sheets("Лист2").Visible = xlSheetVisible
With ThisWorkbook.Worksheets("Лист2")
.Name = "Отчет1"
.Range("A2").CopyFromRecordset rs
.Columns("B:B").NumberFormat = "m/d/yyyy"
.Columns("N:N").NumberFormat = "m/d/yyyy"
End With
.....
С чем это может быть связано? Заранее спасибо!
PS: MS Office 2003, win xp sp2