Каждый раз, когда я запускаю свой файл vba, я получаю ошибку времени выполнения 3704, Операция не разрешена, когда объект закрыт.Попытка исправить эту ошибку.
Перепутаны с типами соединений и другими типами параметров, но безрезультатно.Целью этого кода является создание интерфейса для бизнеса для ввода данных в базу данных SQL.Бизнес не хочет расставаться с Excel для этого.Хранимая процедура, вызываемая в коде vba, вводит данные в базу данных SQL.Я проверил сохраненный процесс работает в SQL.Целью кода vba является вызов хранимой процедуры и импорт данных в базу данных sql.Я сделал это с тестовой БД и одним вар.Сейчас у меня 27. Пытаюсь найти ошибку.
Есть 27 переменных, я не включил их все.Я подтвердил, что все они извлекают правильные данные из Excel.У меня также есть другие, которые проверяют, что параметры являются правильными параметрами в SQL.
Sub ImportProForma()
Dim rs As ADODB.Recordset
Dim cnSQL As ADODB.Connection
Dim sqlCommand As ADODB.Command, PKprm As Object
Dim PK As Integer
PK = Range("D3").Value
Sheets("UpdateProForma").Select
Set cnSQL = New ADODB.Connection
cnSQL.Open "Provider=SQLOLEDB; Integrated Security = sspi; Initial Catalog = [Database]; Data Source = [Server]"
Set sqlCommand = New ADODB.Command
sqlCommand.ActiveConnection = cnSQL
sqlCommand.CommandType = adCmdStoredProc
sqlCommand.CommandText = "ImportNewEntry"
Set PKprm = sqlCommand.CreateParameter("PrimaryKey", adInteger, adParamInput)
PKprm.Value = PK
sqlCommand.Parameters.Append PKprm
sqlCommand.Parameters("PrimaryKey") = PK
Set rs = New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
rs.Open sqlCommand
rs.Close
Set rs = Nothing
End Sub
Конечная цель этого проекта - иметь возможность импортировать данные в SQL без необходимости выходить из бизнеса.