Я получаю ошибку выполнения 91 после попытки отправить инструкцию sql в моем приложении excel. Вот следующий код:Ошибка выполнения 91 в VBA превосходит ADODB.Recordset
'Module Consts:
Public rst1 As New ADODB.Recordset 'defined in a constants module
'Module Conn:
Public Sub GetDynSQLQuery(ByVal strQuery$, ByVal rs As ADODB.Recordset)
Set rs = Nothing
If cn = "" Then Call ConnectToDb 'Sub set the variable "cn" with connectionstring to db and open the connection
With rs
.Source = strQuery 'Here comes the error
.ActiveConnection = cn
.CursorType = adOpenForwardOnly
.LockType = adLockReadOnly
.Open
End With
End Sub
'Form1:
strSql = "SELECT * FROM tbl1"
Call GetDynSQLQuery(strSql, rst1)
Сообщение об ошибке:
переменная объекта или С-блока переменной не установлено
Что я делаю неправильно, я не могу видеть это.
'Set rs = Nothing'', а затем используйте 'rs'. Поэтому, если 'rs' является общедоступной переменной и заполняется' ConnectToDb', она остается пустой перед использованием, ergo ошибка! – R3uK
@ R3uK rs установлен в «Nothing» или что вы имеете в виду именно? – yuro
Мой плохой для предыдущего форматирования, см. Ответ для более простого объяснения! – R3uK