Ошибка времени выполнения '3265' не может понять, почему - PullRequest
0 голосов
/ 19 сентября 2019

Получение ошибки времени выполнения 3265 при попытке передать набор записей из хранимой процедуры SQL в переменную в VBA.

У меня есть пользовательский инструмент VBA Excel, который я пытаюсь разработать, который имеет доступ к запускунекоторые хранимые процедуры в базе данных, но я получаю ошибку времени выполнения, когда пытаюсь передать результат в переменную.

Sub DBConnect()
    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    If Sheets("Billing Control").Range("K2").Value = Test Then
        ConnectString = "Provider=SQLOLEDB;Server=xxx;Database=yyy;Trusted_Connection=yes;"    
    ElseIf Sheets("Billing Control").Range("K2").Value = Live Then
        ConnectString = "Provider=SQLOLEDB;Server=xxx;Database=yyy;Trusted_Connection=yes;"
    End If

Sub Run_SQL_Extract()    
    Dim ProcReturn As String
    Dim SQLCode As String

    Call DBConnect
    Call SetDates

    cn.Open ConnectString
    cn.CommandTimeout = 360

    SQLCode = "Exec storeprocname" & " '" & BillingMonth & "', '" & BillingMonthEnd & "'"

    rs.Open SQLCode, cn    

    ProcReturn = rs.Fields(0).Value

    rs.Close
    cn.Close

    MsgBox ProcReturn    
End Sub

Хранимая процедура на стороне SQL

GOTO InvoiceGenerated;

Already_Billed: 
Select 'Invoice Already Processed for this Date' as Result

GOTO ExitProc;

StageData_Exists:
Select 'Staging Data already exists for this period. Please revert back to zero billing state' as Result    

GOTO ExitProc;

InvoiceGenerated:
Select 'Invoice Generated' as Result

Я ожидаю этогопередать один из трех результатов в переменную.

Это фактически вызывает ошибку времени выполнения 3265

Не удается найти элемент в коллекции, соответствующий запрошенному имени или порядковому номеру

...