ms access — вернуть записи из хранимой процедуры sql

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

Приведенный ниже метод возвращает ошибку «функция недоступна в ADP» или что-то в этом роде — он работает с формой, но не с отчетом.

Как мне это сделать?

Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim cm As New ADODB.Command

'Use the ADO connection that Access uses
Set cn = CurrentProject.AccessConnection
With cn
    .Provider = "Microsoft.Access.OLEDB.10.0"
    .Properties("Data Provider").Value = "SQLOLEDB"
    .Properties("Data Source").Value = "dsidsw923"
    .Properties("Integrated Security").Value = "SSPI"
    .Properties("Initial Catalog").Value = "Promotions_Dev_DSI"
    .Open
End With

'Create an instance of the ADO Recordset class, and
'set its properties
Set rs = New ADODB.Recordset

With cm
    .ActiveConnection = cn
    .CommandText = "spCheckProdWkConsist"
    .CommandType = adCmdStoredProc

    Set rs = .Execute()
End With

'Set the form's Recordset property to the ADO recordset
Set Me.Recordset = rs

Set rs = Nothing
Set cn = Nothing
Set cm = Nothing

person Perplexed    schedule 31.01.2012    source источник
comment
Вы можете посмотреть на stackoverflow.com/ вопросы/4184871/   -  person Fionnuala    schedule 01.02.2012


Ответы (1)


Рассмотрите возможность создания представления для переноса результатов хранимой процедуры (exec usp_whatever), а затем создайте связанную таблицу с новым представлением.

Кроме того, вы можете создать сквозной запрос (exec usp_whatever), который выполняет хранимую процедуру и напрямую возвращает результаты. Затем просто привяжите свой отчет или форму к запросу.

person Beth    schedule 31.01.2012
comment
Вы не можете выбрать * из хранимой процедуры. Если вы можете предоставить образец кода сквозного запроса, который был бы полезен, спасибо. - person Perplexed; 01.02.2012
comment
Хорошо, тогда вы можете обернуть exec в представление или использовать сквозной запрос. - person Beth; 01.02.2012