Отключение набора записей завершается неудачно, если для activeconnection ничего не задано
Я использую VBA в Excel 2010 на Windows 7 (ADO 6.1). Я пытаюсь выполнить код ниже, чтобы получить отключенный набор записей из хранимой процедуры SQL. Там нет никаких параметров, и если я пытаюсь выполнить это как подключенный набор записей (курсор на стороне сервера), код выполняется просто отлично.
Проблема возникает в самой последней строке процедуры, где я пытаюсь установить свойство activeconnection в ничто. В Excel появляется пустое окно с сообщением об ошибке без сообщения об ошибке или номера ошибки, только значок vbCritical.
Кто-нибудь знает, почему произошла ошибка при попытке очистить активное соединение?
Dim SQLConnectionString as String
SQLConnectionString = "Driver={SQL Server};Server=SERVERNAME\INSTANCE;Database=Database;UID=user;PWD=password;"
Dim cn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.recordset
Set cn = New ADODB.Connection
cn.Open SQLConnectionString
Set cmd = New ADODB.Command
Set rs = New ADODB.recordset
With cmd
.ActiveConnection = cn
.CommandText = sp
.CommandType = adCmdStoredProc
End With
Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.LockType = adLockBatchOptimistic
rs.CursorType = adOpenStatic
rs.Open cmd.Execute
Set rs.ActiveConnection = Nothing